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


reil  2008-10-14 15:42:30  No: 69124  IP: 192.*.*.*

お世話になります。 

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-14 21:36:37  No: 69125  IP: 192.*.*.*

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

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

以上。

編集 削除
そだ  2008-10-15 00:54:59  No: 69126  IP: 192.*.*.*

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

編集 削除
reil  2008-10-16 11:57:52  No: 69127  IP: 192.*.*.*

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

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

編集 削除
YuO  2008-10-16 13:21:46  No: 69128  IP: 192.*.*.*

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

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

編集 削除
reil  2008-10-16 14:23:55  No: 69129  IP: 192.*.*.*

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

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

編集 削除
aetos  2008-10-17 12:28:30  No: 69130  IP: 192.*.*.*

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

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

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

編集 削除