0

私は、2つの3ヘッドカードを備えた1台のPCに接続された6台のディスプレイを備えたキオスクアプリケーションを作成しています。ディスプレイは、1024x768の1つの解像度しか使用できません。何らかの理由で、Windows7はそれらを1600x1200の解像度のディスプレイとして検出します。デスクトップ領域は、ディスプレイ1が左側に、6が右側に順番に配置されるように配置する必要があります。これは、Windowsのディスプレイコントロールパネルを使用してデスクトップを手動で再配置するだけで、ラボで解決する簡単なソリューションです。キオスクを駆動するソフトウェアを提供した後の現場では、ディスプレイに障害が発生して交換された場合、ウィンドウがデスクトップと解像度を再配置するため、これは機能しません。私のソフトウェアは、デスクトップと解像度をプログラムで調整する必要があります。

完璧な世界では、実行する関数にラップできる一連のwin32呼び出しを実行できるようにしたいと思います。

Set the resolution of display plugged into video card 0 port 0 to 1024x768
Set the workspace position of display plugged into video card 0 port 0 to 0,0

Set the resolution of display plugged into video card 0 port 1 to 800x600
Set the workspace position of display plugged into video card 0 port 1 to 1024,0

Set the resolution of display plugged into video card 0 port 2 to 1600x1200
Set the workspace position of display plugged into video card 0 port 2 to 1824,0

Set the resolution of display plugged into video card 1 port 0 to 640x480
Set the workspace position of display plugged into video card 1 port 0 to 3424,0

Set the resolution of display plugged into video card 1 port 1 to 1024x768
Set the workspace position of display plugged into video card 1 port 1 to 4448,0

Set the resolution of display plugged into video card 1 port 2 to 1920x1080
Set the workspace position of display plugged into video card 1 port 2 to 6368,0

そうすれば、ビデオカード0のポート0が左側にあり、ビデオカード1のポート2が右側にあることが保証されます。

誰かが私がC++でこれをどのように行うことができるか考えていますか?

編集1:問題の性質をもう少し明確にするために解像度を更新しました

編集2:問題のワークスペース部分を含めるために例を再度更新

編集3:スペル

4

0 に答える 0