zoukankan      html  css  js  c++  java
  • 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(),暂时没有看懂,不解释。

  • 相关阅读:
    深入MySQL(一):MySQL的组织架构
    使用graalvm nativeimage 快速暴露jar 代码为native 共享库
    SQL注入__布尔盲注和时间盲注 菜鸟
    linux网络配置,无法解析或者打开软件包列表
    django入门视图
    三.面试题
    select,poll,epoll的区别以及使用方法
    Linux从入门到入坑
    品味Spring Cache设计之美
    JAVA_基础篇(1)_JDK 8 的下载、安装与配置
  • 原文地址:https://www.cnblogs.com/Satu/p/8169005.html
Copyright © 2011-2022 走看看