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

C#实现启动屏幕保护(附完整源代码) 阅读详情

用微软的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;
通过这段代码,就能够判断出当前屏幕保护程序是否真的开启或关闭


C# .NET 禁止屏幕保护程序 基于C#实现 操作系统上 禁止屏幕保护程序 立即下载

相关推荐

RiscV运行zephyr和Linux的方法

riscv基金会搞了一个网站,用于介绍如何使用riscv指令集进行开发。 对于运行zephyr和linux以及Qemu有非常大的帮助。 可以作为riscv开发的相关参考。 RISC-V - Getting Started Guide — RISC-V - Getting Started Guidehttps://risc-v-getting-started-guide.readthedocs.io/en/latest/index.html RISC-V - Getting Started Gu.

闲人的专栏 737

监控软件之 阻止系统屏保 阻止系统关闭显示器 阻止系统待机

目前大部分监控软件都是基于DDRAW来显示的,在屏保/系统关闭显示器/待机之后,画面会消失。 可用下面的代码阻止屏保/系统关闭显示器/待机 //记录是否启用屏幕保护 BOOL bScreenSaverActive = FALSE; //阻止屏保 //获取是否启用屏幕保护 SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,0,&bScreenS

Sloan 4268

HarmonyOS ArkTS开发实战:用Axios封装一个通用的网络请求工具类(附完整代码)

本文详细介绍了如何在HarmonyOS ArkTS开发中利用Axios封装一个通用的网络请求工具类,涵盖架构设计、核心模块实现、UI状态联动及高级功能扩展。通过单例控制器、拦截器链配置和Token自动刷新机制,提升网络请求的稳定性和可维护性,适用于各类HarmonyOS应用开发场景。

weixin_30772105的博客 491

阻止屏保运行、显示器和系统待机

暴风影音在播放的时候会阻止屏幕保护程序的运行,并会防止系统关闭显示器和进入待机状态。以下就是用C#来实现这个功能。

张吉的博客 8546

西门子200SMART自定义库开发实战:从PID到露点算法的工业应用

本文详细介绍了西门子200SMART自定义库开发实战,涵盖从PID控制到露点算法的工业应用。通过代码封装技巧、多语言支持和性能优化等高级开发方法,帮助工程师提升PLC编程效率。文章特别强调了自创库在实际项目中的优势,如恒温恒湿控制系统的成功案例,展示了自定义库在工业自动化中的强大应用价值。

lake5的博客 1028

QML从入门到实战 - 完整学习路线

想入门 QML 开发?来 “从零开始学 QML” 专栏,海量源码 + 实战案例 + 大型项目拆解,手把手教你搞定跨平台 UI 设计,小白也能轻松掌握!

BenBierBa的博客 3489

关于Windows锁屏的两个参数:ScreenSaveTimeOut和inactivityTimeOutSecs

用 ScreenSaveTimeOut 会更直接地控制屏幕保护程序及其锁屏功能,它适用于多数情况下实现自动锁屏功能。inactivityTimeOutSecs 通常用于更复杂的会话管理配置,不是直接控制屏幕锁定的设置。

刘元林的博客 3256

日常工作记录---在虚拟机中进行slam建图

   今天是10月24号,首先祝各位程序员们节日快乐!!!    最近一周由于实习的原因,对ROS的探索学习,停滞了一段时间,所以今天也就没什么大的进展,本篇文章仅仅记录一下,我在虚拟机中进行slam建图可行性验证的过程,本篇文章同样使用古月学院《如何在Gazebo中实现阿克曼转向车的仿真》的课程资料来进行验证    下面各条之间并没有严格的顺序关系,每一条都是独立的,都是我在验证过程中的经验或者记录:    1、在运行roslaunch bringup racecar_gazebo_rviz.lau

慕羽★的博客 4829

SystemParametersInfo调置壁纸、屏幕保护程序(转)

SystemParametersInfo调置壁纸、屏幕保护程序 应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。 我们先来看看SystemParametersInfo函数的定义和参数: 使用API函...

weixin_30768661的博客 622

多agv系统调度的MATLAB仿真

从起点出发,到货物点领取货物最后到卸货点,以完成任务总时间最短为目标进行单目标优化,约束条件为,任务不冲突,路径不冲突,要能实现路径规避 ,4-6台agv一起工作。左右货架间隔可通过1个agv,上下货架间隔可通过两个agv,通道为双向行驶通道。一台agv只能带一个货物,优化目标为完成任务总的时间最短,agv的速度是匀速,转弯也不会减速,取货物时间为固定值。上面的图里面货物看为正方形跟agv一样的长度大小,agv试做是跟货物一样大小的正方形agv的速度是每秒1个车身。多台agv一起完成...

FPGA/MATLAB学习教程/源码/项目合作开发 7566

大模型的应用与微调:如何调用 LLM?从 OpenAI API 到本地部署

本篇文章介绍了如何调用 OpenAI、DeepSeek、Manus、通义千问等大模型 API,并探讨了 LLM 本地部署的方法。在实际应用中,可以根据需求选择云端 API 或本地化部署方案,以满足不同的计算需求和隐私要求。下一篇:大模型微调与 RAG 技术(LoRA、QLoRA、向量数据库)

晴天彩虹雨的博客 1157

SystemParametersInfo调置壁纸、屏幕保护程序

应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。 我们先来看看SystemParametersInfo函数的定义和参数: 使用API函数之前必须先在程序中声明如下: BOOL W...

671

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。 镂空遮罩 比较常用的有两种:矩形镂空遮罩、圆形镂空遮罩。 镂空遮罩 在游戏中常被当做新手引导必备的内容,可以给玩家更多不一样的体验。 下面就一起来看一下怎样做出这种效果吧!

努力前行,总会成为自己心中的那道光 1万+

systemparametersinfo详细

应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。 我们先来看看SystemParametersInfo函数的定义和参数: 使用API函数之前必须先在程序中声明如下: Private

Egos 的专栏 7327

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

禁用屏幕保护及启用屏幕保护的代码

以下是禁用屏幕保护的代码: void   DisableScrSaver() {   BOOL   bScrActive;     SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,   0,   &bScrActive,

zmq5411的专栏 1904

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

systemparametersinfo详细zz

 systemparametersinfo详细默认分类   2009-04-14 11:34   阅读234   评论0   字号: 大大  中中  小小 Windows-API-user32 SystemParametersInfo2007-07-17 19:47 应用SystemParametersInfo函数可以获取和设置数

CNCbird的专栏 1087

SystemParametersInfo的使用方法

<br /> <br /> <br />[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]<br />public static extern int SystemParametersInfo(<br />                                                int uAction,<br />                                                in

朩冰雲的专栏 9530

禁止/启用屏幕保护及系统热键等

禁止/启用屏幕保护及系统热键等作者:徐景周1. 禁止/启用屏幕保护及电源管理static UINT dss_GetList[] = {SPI_GETLOWPOWERTIMEOUT, SPI_GETPOWEROFFTIMEOUT, SPI_GETSCREENSAVETIMEOUT};static UINT dss_SetList[] = {SPI_S

jz_x的专栏 1514

systemparametersinfo详细(更改屏保设置)

应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。 我们先来看看SystemParametersInfo函数的定义和参数: 使用API函数之前必须先在程序中声明如下: Private Declare Function SystemParametersInfo Lib "user32" Alias "Sys

GuoGuoABC 4379
上一篇: windows下通过注册表来获取计算机相关信息
下一篇: Windows下利判断远程桌面功能是否启用
RuningPigNO1
博客等级 码龄10年 22粉丝 39原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuningPigNO1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值