2009-03-03 7 views
4

私は既にモニターの電源を切るためにいくつかのコードを使用していますが、私はまだ少し問題があります。C#のモニタ電源を正しくオフにする方法は?

ほとんどの場合、コードは正常に機能しますが、しばらくしてから、モニターは空白になります。私がこれを意味するのは、画面が完全に黒で、何も見ることはできませんが、まだ点灯していることがわかります。 LCDライトはまだ点灯していますが、画面は完全に黒です。

なぜこのようなことが起こっているのか分かりませんが、おそらく何人か知っているかもしれません。これは、Windows Powerの設定をX分後にオフにするように設定しても起こりませんが、いつでも好きなときにショートカットで呼び出すことができます。

[System.Runtime.InteropServices.DllImport("user32.dll")] 
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam); 

const int WM_SYSCOMMAND = 0x0112; 
const int SC_MONITORPOWER = 0xF170; 
const int HWND_BROADCAST = 0xFFFF; 

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); 

任意のアイデア:

私が使用しているコードは、このようなものでしょうか?

答えて

1

複数のマシンでこれをテストしましたか?ドライバの問題である可能性があります...

+0

いいえ、私の場合のみです。それは私がそれに取り組んでほしいものです... –

4

あなたはそのメッセージをすべてのウィンドウにブロードキャストしたくありません。あなたは、あなたが期待しているようにそれを処理するために、すべての人に頼っています。

自分で作成し、メッセージを送信して行動を制御できるようにする必要があります。

レイモンド・チェンこの記事のコメント欄に、いくつかのソリューションがあります:http://blogs.msdn.com/oldnewthing/archive/2006/06/13/629451.aspx

+1

+1放送は、厄介な問題の多くを引き起こす可能性があります。 –

+0

私はチャンスを得たときにそのリンクを読むでしょう:) –

+0

それは動作しませんでした... LCDライトは常にオフにならない:( –

0

何も働いていない、私は私自身のウィンドウを作成し、そのウィンドウハンドルを使用し、時間のほとんどは、画面がオフになって、それが完全ですさ黒(LCDライトが消灯)でも、しばらく毎にLCDライトが消灯しません。:(

0

この問題もあります。理由は、画面をスリープ状態にすることはありません。具体的な共通性は見つかりません。エッチアウト。通常、1回再起動すると問題が解消されます。常にではない。

私はスクリーンが目を覚まし、ログアウトしたマシンで再びスリープするのを拒否し、誰もそれと対話していないのを見ました。

明らかに、責任を負うプロセスやプロセスがありますが、それらをどのようにトレースしていますか?

関連する問題