2011-09-04 5 views
5

デルファイスクリプトから、のWindows XPから7まで有効にしたいと思っていました。モニターの電源をオン/オフするにはどうすればいいですか?

私はデルファイのセクションをstackoverflowで検索して答えを見つけられませんでした。

私はWindows 7(XPのみ)ではもはや動作しない多くのサンプルを発見しました。私は正常にWindows XPののWindows 7上でこれをテストしている

+1

を最初の結果は、 "デルファイのスクリプトから私のモニターをオン/オフに切り替える"ほとんどすべてのリスト "のためにグーグルウル "解決策。 – Mat

+0

私はMatに同意します。私はstackoverflowでそれを見つけることができなかったので、私はそれを追加します(そして、私は[this]を読んでいます(http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your -own-questions /))... – Whiler

+1

My ['TSystemState'](http://specials.rejbrand.se/dev/classes/systemstate/readme.html)はこれを行います。 –

答えて

8

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

おそらく、SendMessageの代わりにPostMessageを使用する必要があります。 – tinman

+0

私はそれをテストします!それは動作します!どうもありがとう!私は私の答えの2番目の部分を更新します。 – Whiler

関連する問題