[マルチモニタ]特定のモニタをON/OFFしたい


reil  2008-10-15 00:42:30  No: 69124

お世話になります。 

WindowsXP上でVS2005.NETの環境で作成しております。 

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200510/05100004.txt

上記ログにてChangeDisplaySettingsExを使用してセカンダリモニタのON/OFFが可能とあり、MSDNを確認したところ、第二引数にCDS_SETRECTを指定することで出来そうなのですが、ON/OFFが動作しませんでした。

実際は複数台のモニタがあり、2台目のモニタのみON/OFFを行う動作としたいです。

ご教授頂ければと思います。
また、サンプルコード等ありましたらお教え頂きたくお願いします。


オショウ  2008-10-15 06:36:37  No: 69125

オン/オフとは?
再起動しないで動的にオン/オフさせるのですか?

尚、機能は定義されていてもディスプレイアダプタのドライバー
が対応していないとできませんが・・・

以上。


そだ  2008-10-15 09:54:59  No: 69126

リンク先のMSDNにまさにDetachDisplayという関数の例が示されてるのですが
これを試してもできなかったということでしょうか?


reil  2008-10-16 20:57:52  No: 69127

アプリ起動時にディスプレイの切り離しはできましたが、切り離した状態でアプリ起動->ディスプレイ接続ができませんでした。
また、アプリ起動中に切り離し->接続->切り離し...といった動作はできるのですが、Screen.AllScreens(1)でセカンダリディスプレイを認識できなくなりました。

出来れば各モニタ毎に省電力(又は画面を表示させない)事が望ましいです。


YuO  2008-10-16 22:21:46  No: 69128

この記事などは参考にならないでしょうか。
http://d.hatena.ne.jp/yaneurao/20060415#p1

上記記事によると,Screen.AllScreensはアプリケーション起動時のスクリーン情報のスナップショットであって,現在の情報を返すわけではないとのことです。


reil  2008-10-16 23:23:55  No: 69129

ありがとうございます。
Screenクラスは使用できないんですね・・・。

やはり特定のモニタだけ電源をON/OFFする事はできないのでしょうか?


aetos  2008-10-17 21:28:30  No: 69130

モニタの電源をON/OFFしたいんですか?
ウチにマルチモニタ環境がないので詳しくは知りませんが、それってマルチモニタの接続/解除とは別じゃありません?

プログラムからモニタの電源を ON/OFF するには WM_SYSCOMMAND を SC_MONITORPOWER でブロードキャストすればいいらしいですが、これではモニタごとにはできないだろうなぁ、たぶん。

SetDevicePowerState なんていう関数は Windows CE にしかないし。GetDevicePowerState はあるのにね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加