windows下SystemParametersInfo获取屏幕保护始终为TRUE解决办法

标签: 注册表 SystemParametersInfo SPI_GETSCREENSAVEACTIVE
7人阅读 评论(0) 收藏 举报
分类:

用微软的SystemParametersInfo方法请求SPI_GETSCREENSAVEACTIVE来获取屏幕保护程序是否开启,我们会发现当第一次程序启动(计算机屏保未开启的情况下)返回的确实是FALSE,也就是说返回的状态没问题,当你将计算机屏幕保护打开在测试,发现返回的是TRUE,(是不是很开心^_^,不要激动),此时 如果你在将屏幕保护关闭以后,在此启动程序,发现返回的是TRUE(此时内心有一千万只吃草的那种动物从心里面飘过),在查看资料以后发现,这原来是微软的一个BUG,微软官方也承认了这个BUG的存在,同时微软也给出了一个解决的方法,那就是通过注册表来判断

HKEY hKeySreenSaver = NULL;long lReturn = NULL;
	long lScreenSaver = NULL;
	DWORD dwData = NULL;

	lReturn = RegOpenKeyEx(HKEY_CURRENT_USER,
		TEXT("Control Panel\\Desktop"),
		0,
		KEY_QUERY_VALUE,
		&hKeySreenSaver);
	if(lReturn == ERROR_SUCCESS)

	{
		lScreenSaver = RegQueryValueEx(hKeySreenSaver, 
			TEXT("SCRNSAVE.EXE"),
			NULL,
			NULL,
			NULL,
			&dwData);

		if(lScreenSaver == ERROR_SUCCESS){
			printf("Screen Saver is Active");
			bIsScrSaveEnable = TRUE;
		}
		else{
			printf("Screen Saver is Not Active");
			bIsScrSaveEnable = FALSE;
		}

	}
	RegCloseKey(hKeySreenSaver);
	hKeySreenSaver = NULL;
通过这段代码,就能够判断出当前屏幕保护程序是否真的开启或关闭


查看评论

systemparametersinfo详细用法

应一同学要求特把这api详之设置和取得windows系统参数,现在让我们详细地分析一下(其功能强大)下面一例取得work区procedure CenterWindow(winHnd : HWND; w...
  • abin30
  • abin30
  • 2007-01-24 17:09:00
  • 2635

SystemParametersinfo系统配置的获取

该函数查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。 //函数原型 BOOL SystemParametersinfo(UINT uiAction,UINT uiParam,...
  • u014355440
  • u014355440
  • 2015-01-05 17:03:28
  • 615

14.VC(ui)-禁用拖动时显示窗口

在电脑-属性-高级-性能设置-拖拉时显示窗口内容,如果选中这个框,那么其他窗口在自绘的窗口拖动就很闪,没法了,禁用它,程序关闭后再还原它    判断是否这个属性勾上了: BOOL CMTSFrmApp...
  • hgy413
  • hgy413
  • 2011-09-01 15:13:15
  • 1239

[WIN32]SystemParametersInfo 可用于设置壁纸

函数原型 BOOL WINAPI SystemParametersInfo( _In_ UINT uiAction, _In_ UINT uiParam, _Inout_ ...
  • liuyukuan
  • liuyukuan
  • 2016-12-25 21:38:56
  • 1228

SystemParametersInfo的使用方法

  [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]public static extern int SystemParam...
  • mubingyun
  • mubingyun
  • 2011-01-14 12:41:00
  • 7254

真正的windows屏幕保护程序

  • 2010年03月04日 22:59
  • 976KB
  • 下载

Windows屏幕保护程序的制作

                                                              Windows屏幕保护程序的制作前些日子看了阿卓工作室的一篇关于如何制作屏保...
  • anyue417
  • anyue417
  • 2007-03-09 23:09:00
  • 4491

月考笔试题,不调整好格式,不舒服斯基

一、 选择题1.选出在java中有效的注释声明()。(选两项) A.//这是注释 B.*/这是注释*/ C./这是注释 D./*这是注释*/2.下面说法正确的...
  • zouzehan
  • zouzehan
  • 2015-12-30 01:33:21
  • 1380

黑客帝国_屏幕保护程序

Hacker empire 申明:本程序资源纯属个人创作,文尾提供程序下载地址。 效果图: 程序思路说明:     1:本源码是在VS2013中编写,在其他版本编译器应该也可以。     2:在...
  • qq_31622605
  • qq_31622605
  • 2017-04-19 10:47:00
  • 683

systemparametersinfo参数说明

SPI_GETACCESSTIMEOUT lpvParam是一个ACCESSTIMEOUT结构,其中要载入辅助访问特性计时信息。在调用函数之前,uParam必须设为ACCESSTIMEOUT结构的大小...
  • ugg
  • ugg
  • 2007-04-18 17:05:00
  • 1984
    个人资料
    持之以恒
    等级:
    访问量: 3041
    积分: 305
    排名: 25万+
    文章分类
    文章存档