下午好,我有一段代码用于监视 Windows XP 及更高版本中的屏幕保护程序事件,目前它在除 Windows 7 之外的所有 Windows 操作系统上都能正常工作,我知道 SystemParametersInfo 函数的某些屏幕保护程序参数在Windows 7中不可用但认为SPI_GETSCREENSAVERRUNNING可用,代码如下:
BOOL bScrnSvrRunning = FALSE;
BOOL bResult = SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, &boolScreenSaverRunning, 0);
函数始终为 bResult 返回 true,但 bScrnSvrRunning 始终为 false,
有人知道是什么原因造成的吗?
最佳答案
如果您确实想要监控屏幕保护程序事件,您可以考虑使用系统事件通知服务 (SENS)。系统事件通知服务在那里监视和调度,因此它可以通知您的应用程序有关屏幕保护程序许多事件的启动(请参阅 ISensLogon::StartScreenSaver )和停止(请参阅 ISensLogon::StopScreenSaver )。您可以找到如何使用 SENS 的示例 here (另请参见 here 和 here)。
关于c++ - 在 Windows 7 上监视屏幕保护程序事件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898471/