c++ - 在 Windows 7 上监视屏幕保护程序事件失败

标签 c++ winapi

下午好,我有一段代码用于监视 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 (另请参见 herehere)。

关于c++ - 在 Windows 7 上监视屏幕保护程序事件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898471/

相关文章:

c - 在 C 中构建窗口窗体

c++ - std::locale 没有 lconv::p_cs_precedes 的等价物?

c++ - 类(class)声明类(class)负责人的全局资格

c++ - 即使不需要也实现迭代器? C++

c# - 输入密码并解锁 Windows 7、8、10 的程序

c - LVCOLUMN.cchTextMax 和 LVITEM.cchTextMax 的用途是什么?

c++ - 检查区域设置

c++ - 来自梯度图像的邻接矩阵

c++ - 在使用 Visual Studio 2005 调试时调用函数?

python - 如何使用unicode版本Windows API : mciSendString(), Python