可以建议的一种解决方案是定期查找特殊的“屏幕保护程序”桌面,如果存在,则将其视为正在运行的屏幕保护程序。
但显然,并非所有屏幕保护程序都是如此,因为某些提到的桌面始终存在。
有没有更可靠的解决方案?
可以建议的一种解决方案是定期查找特殊的“屏幕保护程序”桌面,如果存在,则将其视为正在运行的屏幕保护程序。
但显然,并非所有屏幕保护程序都是如此,因为某些提到的桌面始终存在。
有没有更可靠的解决方案?
请参阅带有 SPI_GETSCREENSAVERRUNNING 参数的 WINAPI 函数 SystemParametersInfo()。这是检测屏幕保护程序当前是否正在运行的唯一记录方法。(您也可以查看是否启用了屏幕保护,获取并设置超时值,并使用此功能启动屏幕保护。)
我认为关键是通过其窗口类(“WindowsScreenSaverClass”)来识别屏幕保护程序。我找到了这个页面 如何启动、检测和停止屏幕保护程序?有一些代码示例和解释。
如何:使用 Visual Basic 6.0 确定屏幕保护程序是否正在运行
我知道这是针对 VB6 的,但它肯定是一个很好的起点。
在 .MainModule.FileName 中搜索带有 .scr 的进程的进程