好困,想躺一下,关灯、上床,笔记本的屏幕还亮着,好刺眼,睡不着!
脑子里出现一个疑问,怎么用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的说明:
|
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) |
SC_MONITORPOWER的作用是用于设置显示器的状态。这条指令支持那些带有节能特性的设备,比如,由电池供电的个人电脑。
参数lParam的值可以为下列值:
-1 打开显示器电源
1 使显示器进入低功耗模式
2 关闭显示器的电源
一个小插曲,我用我的笔记本调试可以,能关闭显示器的电源。但是,我让我的朋友用台式机测试,实现不了,显示器关了,紧接着又重开。
关于函数SendMessage()和FindWindow(),暂时没有看懂,不解释。
原文链接: https://www.cnblogs.com/Satu/p/8169005.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/266936
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!