C++ 关闭显示器

好困,想躺一下,关灯、上床,笔记本的屏幕还亮着,好刺眼,睡不着!

脑子里出现一个疑问,怎么用C++写一个关闭屏幕的小程序呢?

 

参考了网上已有的例子,最简化:

1 #include <windows.h>
2 
3 int main()
4 {
5     /* The display is being shut off */
6     SendMessage(FindWindow(0,0), WM_SYSCOMMAND, SC_MONITORPOWER, 2);
7 
8     return 0;
9 }

执行后,会关闭显示器的电源,其它的似乎不受影响(暂时没有验证)。如果要唤醒屏幕,动动鼠标,或是敲敲键盘就可以了。

 


 

关于“WM_SYSCOMMAND message”的参考:https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms646360(v=vs.85).aspx

里面有关于SC_MONITORPOWER的说明:

SC_MONITORPOWER 0xF170

Sets the state of the display. This command supports devices that have power-saving features, such as a battery-powered personal computer.

The lParam parameter can have the following values:

  • -1 (the display is powering on)
  • 1 (the display is going to low power)
  • 2 (the display is being shut off)

 

 

 

 

 

 

SC_MONITORPOWER的作用是用于设置显示器的状态。这条指令支持那些带有节能特性的设备,比如,由电池供电的个人电脑。

参数lParam的值可以为下列值:

-1 打开显示器电源

 1 使显示器进入低功耗模式

 2 关闭显示器的电源

 

一个小插曲,我用我的笔记本调试可以,能关闭显示器的电源。但是,我让我的朋友用台式机测试,实现不了,显示器关了,紧接着又重开。


 

关于函数SendMessage()和FindWindow(),暂时没有看懂,不解释。

转载于:https://www.cnblogs.com/Satu/p/8169005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值