检查在C#中激活的屏幕保护程序失败

时间:2014-10-16 06:39:23

标签: c# windows-7 screensaver

我试图弄清楚如何在Windows 7下使用C#检查屏幕保护程序是否处于活动状态。

好吧,我用Google搜索了这个并找到了一些解决方案:

[DllImport( "user32.dll", CharSet = CharSet.Auto )]
private static extern bool SystemParametersInfo(int uAction, int uParam, ref bool lpvParam, int flags );    

然后:

private const int SPI_GETSCREENSAVERACTIVE = 16;    

功能:

public static bool GetScreenSaverActive()
{
     bool isActive = false;

     SystemParametersInfo( SPI_GETSCREENSAVERACTIVE, 0, ref isActive, 0);

     return isActive;
}

但不幸的是,这在几台PC上无法正常工作。

如果屏幕保护程序从未被激活,则函数GetScreenSaverActive将返回false。如果屏幕保护程序已被激活,则返回true。没关系。

但是如果屏幕保护程序比去激活的话,该功能仍然是真的 - 即使我重新启动电脑。我不知道那里发生了什么,但是当我激活屏幕保护程序时,我总是得到一个真实的。

0 个答案:

没有答案