2010-12-14 9 views
8

WinAPI/C#を使用して1台のモニタをスリープ状態にすることはできますか?スリープモードにモニターを配置することが可能である、WindowsのAPIを使用することにより

[DllImport("user32.dll")] 
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); 

、その後

SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2); 

上記のコマンドを実行し、両方のモニタがスリープ状態に入ります。これは、複数の接続されたモニタの1つにのみ影響を与えることは可能ですか?

答えて

2

特定のモニタをスリープ状態にできるかどうかは正確にはわかりませんが、ディスプレイの数を1に変更することでこれを達成できます)、目を覚ましたいと思っています。もう1つは約1分後に自動的にスリープ状態になります(ほとんどのモニタは、切断後約1分後に省電力モードに入ります)。基本的には、プログラマチックにモニタの接続を切断しています。必要なときにアクティブにすることができます。

しかし、この方法には他の意味があります。これは、一度再生を開始するとわかります。

+0

移動している2台目のモニタのようなウィンドウが表示されます:) – Basic

+0

@Erlend:これを実現すれば、あなたはそれを可能にしました。私は現在、同様の解決策を探しています。アプローチ...どのようにそれが働いているかを見出そうとしています。もしかして... – Bhuvan

+0

残念ながら、私はこれを達成できませんでした。 –

2

thisによるといいえ。

その理由は、APIが両方のモニタとして定義されているディスプレイをオフにしているためです。特定のモニタをオフにすることは、ハードウェアのネクタイとなります。

関連する問題