2013年5月25日 星期六

[Win32] 開關螢幕及鎖定(Screen On/Off and Lock)

開啟及關閉螢幕(Screen On/Off)
我們利用SendMessage來廣播WM_SYSCOMMAND訊息給所有視窗(windows),
然後代入SC_MONITORPOWER這個參數來設定顯示狀態,設定值如下面描述。

SC_MONITORPOWER
  • -1 (開啟螢幕)
  • 1  (讓螢幕處於低耗電量)
  • 2  (關閉螢幕)

下面是程式碼片段,注意最後一個參數的設定,代表不同功能。
void screenOff()
{
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER,(LPARAM)2);
}

void screenOn()
{
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER,(LPARAM)-1);
}

void screenLowPower()
{
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER,(LPARAM)1);
}

鎖定(Lock)
鎖定的功能就和按下 Ctrl+Alt+Del,然後在選擇"鎖定"一樣
void lock()
{
    LockWorkStation();
}

沒有留言:

張貼留言