為了響應國家節約號召,
為國家電力貢獻自己的一點微薄之力,
本人決定在吃飯及午休、外出時,
關閉顯示器,
同時也延長了筆記本的使用壽命。。
當然在台式機上,直接關閉顯示器電源即可。
在筆記本上,利用鍵盤的FN快捷鍵,只能關閉屏幕背光,
不能關掉主板給屏幕的信號輸出。仔細看仍然會看到暗淡的桌面。
本人建議:各位不要經常性的讓筆記本待機。。對硬盤影響很大的。。。
在桌面顯示屬性的“電源管理”裡面,我們可以調整電源方案,
設置計算機在X分鐘後關閉監視器,硬盤,待機。等等。。。
命令行為:
powercfg /change "電源方案名稱" /moniter-timeout-ac 1
這個比較麻煩,還需知道當前使用的電源方案。
不過,windows為我們提供了一個API。可以實現即時關閉監視器。
LRESULT
WINAPI SendMessage(
__in
HWND
hWnd,
__in
UINT
Msg,
__in
WPARAM
wParam,
__in
LPARAM
lParam
);
詳見:http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx
此API在平台調用中,如下簽名:
1
//C# Signature:
2
[DllImport(
"user32.dll"
, CharSet = CharSet.Auto)]
3
static
extern
IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
此方法的各個參數類型有一些重載,一般還是建議用IntPtr,否則,在64位平台OR其它情況下可能會崩潰~
我們需要傳給Msg 一個系統消息,即:WM_SYSCOMMAND
然後是附加信息,比如屏幕保護:SC_SCREENSAVE,監視器電源:SC_MONITORPOWER
WM_SYSCOMMAND有如下取值:
enum
SysCommands :
int
{
SC_SIZE = 0xF000,
SC_MOVE = 0xF010,
SC_MINIMIZE = 0xF020,
SC_MAXIMIZE = 0xF030,
SC_NEXTWINDOW = 0xF040,
SC_PREVWINDOW = 0xF050,
SC_CLOSE = 0xF060,
SC_VSCROLL = 0xF070,
SC_HSCROLL = 0xF080,
SC_MOUSEMENU = 0xF090,
SC_KEYMENU = 0xF100,
SC_ARRANGE = 0xF110,
SC_RESTORE = 0xF120,