网上有很多关于如何编写屏幕保护程序的例子、教程、代码等,唯独没有一个介绍如何判断系统是否设置了屏幕保护的(至少我现在没有找到),最近我写了一个小程序,需要判断一下系统是否设置了屏幕保护,我现在就卡在这里了,不知有哪位童鞋、大侠知道呀,麻烦告知一二,感激不尽呀!

解决方案 »

  1.   

    注册表!
    HKEY_CURRENT_USER/Control Panel/desktop项   ScreenSaveActive的值 0 没开启 1开启
      

  2.   


    我在XP下测试了下,你说的注册表项值是可以拿来决断XP系统是否启用了屏幕保护,但是我在Win7下测试时,发现无论启用与禁用屏幕保护程序,ScreenSaveActive的值都是1,不懂是不是要重启机器才生效,还是根本不能在Win7下面这样判断!
      

  3.   

    BOOL bIsScrSaveEnable;SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, NULL, &bIsScrSaveEnable, NULL); 
      

  4.   


    楼主的代码我之前在VS2008+32位Win7旗舰版中测试过了,函数是运行成功了,结果却没有判断出系统有没有设置屏保,我在MSDN了查了有关SystemParametersInfo函数的使用信息,各参数的含义我是清楚的,让人恼火的是它没有判断出来!
      

  5.   

    WIN7没试过,不过在XP,WIN2008 R2 X64下运行是能正常判断的.