2011-09-04 99 views
5

我希望能夠打開/關閉我的顯示器德爾福腳本,從Windows XP到7如何打開/關閉顯示器?

我在德爾福部分搜索stackoverflow並沒有找到答案。

我還發現許多樣本在Windows 7上無法使用(僅適用於XP)。

+1

第一個搜索結果是「用Delphi腳本打開/關閉我的顯示器」幾乎所有列表「喲你的「解決方案。 – Mat

+0

我同意Mat;我只是添加它,因爲我沒有找到它在stackoverflow(和我已閱讀[this](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your -own-questions /))... – Whiler

+1

我的['TSystemState'](http://specials.rejbrand.se/dev/classes/systemstate/readme.html)會這樣做。 –

回答

8

我已經成功地測試了這個在Windows XP 的Windows 7:

const 
    MONITOR_ON  = -1; 
    MONITOR_OFF  = 2; 
    MONITOR_STANDBY = 1; 

要關閉顯示器:

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); 

要打開顯示器:

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON); 
+0

如果你知道它爲什麼會掛起廣播...我試着用Application.ProcessMessages;沒有更好的結果! – Whiler

+1

您可能需要使用PostMessage而不是SendMessage。 – tinman

+0

我只是測試它!它的工作原理!非常感謝!我更新了答案的第二部分。 – Whiler