お世話になります。
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を行う動作としたいです。
ご教授頂ければと思います。
また、サンプルコード等ありましたらお教え頂きたくお願いします。
オン/オフとは?
再起動しないで動的にオン/オフさせるのですか?
尚、機能は定義されていてもディスプレイアダプタのドライバー
が対応していないとできませんが・・・
以上。
リンク先のMSDNにまさにDetachDisplayという関数の例が示されてるのですが
これを試してもできなかったということでしょうか?
アプリ起動時にディスプレイの切り離しはできましたが、切り離した状態でアプリ起動->ディスプレイ接続ができませんでした。
また、アプリ起動中に切り離し->接続->切り離し...といった動作はできるのですが、Screen.AllScreens(1)でセカンダリディスプレイを認識できなくなりました。
出来れば各モニタ毎に省電力(又は画面を表示させない)事が望ましいです。
この記事などは参考にならないでしょうか。
http://d.hatena.ne.jp/yaneurao/20060415#p1
上記記事によると,Screen.AllScreensはアプリケーション起動時のスクリーン情報のスナップショットであって,現在の情報を返すわけではないとのことです。
ありがとうございます。
Screenクラスは使用できないんですね・・・。
やはり特定のモニタだけ電源をON/OFFする事はできないのでしょうか?
モニタの電源をON/OFFしたいんですか?
ウチにマルチモニタ環境がないので詳しくは知りませんが、それってマルチモニタの接続/解除とは別じゃありません?
プログラムからモニタの電源を ON/OFF するには WM_SYSCOMMAND を SC_MONITORPOWER でブロードキャストすればいいらしいですが、これではモニタごとにはできないだろうなぁ、たぶん。
SetDevicePowerState なんていう関数は Windows CE にしかないし。GetDevicePowerState はあるのにね。
ツイート | ![]() |