关掉显示器?

mac*_*e_1 4 c++ windows winapi

我有64位的Windows 10,我花了很多时间在屏幕后面编程.我需要不时休息一下,并通过使屏幕变黑来限制屏幕光线/辐射与我的头部碰撞,就好像关掉.

我能做的就是掉到登录界面,但我需要看到黑色才能放心!我真正希望实现的是你在不活动时获得的黑屏.可以通过编程方式进行吗?

这是我到目前为止的代码:

#include <Windows.h>

#define KEY_DOWN(key) ((::GetAsyncKeyState(key) & 0x80000) ? 1 : 0)
#define KEY_UP(key)   ((::GetAsyncKeyState(key) & 0x80000) ? 0 : 1)

int main(void)
{
    // Hide the console window
    HWND hWnd;
    AllocConsole();
    hWnd = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(hWnd, 0);

    //Press ctrl + alt + 'L' to lock / Press ctrl + 'E' to terminate the program
    while (1)
    {
        if (::GetAsyncKeyState('L') == -32767)
        {
            if (KEY_DOWN(VK_CONTROL) && KEY_DOWN(VK_MENU))
                LockWorkStation();
        }
        if (::GetAsyncKeyState('E') == -32767)
        {
            if (KEY_DOWN(VK_CONTROL))
                return 0;
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Adr*_*ian 5

使用消息SC_MONITORPOWER参数WM_SYSCOMMAND关闭监视器:

SendMessage(handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
Run Code Online (Sandbox Code Playgroud)

该参数2为第四参数关闭显示器.

另请参见https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360(v=vs.85).aspx