web-dev-qa-db-ja.com

マルチモニター環境でモニターを配置する場所を決定するレジストリキーまたはWindowsファイルは何ですか?

SB-VGAアダプター を備えたラップトップを持っています。これにより、3番目のモニターをラップトップに追加できます(2番目のモニターはオンボードスロットを使用します)。

Windows Vistaでは問題なく動作しました。Windowsのディスプレイ設定に入ると、Windowsは3番目のモニターを認識し、それに応じてドラッグできます。 Windows 7では、3番目のモニターは文字通りWindowsの表示設定にはありません。ドライバーを使用すると、3番目のモニターに表示できますが、現在の場所に移動することはできません。表示設定が他の2つと比べて正しく配置されていません(ウィンドウをその上にドラッグすると、位置合わせするときに下部に表示されます)。

テクニカルサポートに電話をかけたところ、Windows 7用のこの機能を備えたドライバーはまだないとのことでした。しかし、ここに私の直感があります。モニターの配置は、私がVistaで使用していた場所と多少似ていますが、約500ピクセルほどずれています。このモニターに存在する場所を伝えるレジストリキーまたはドライバーファイルがどこかにあると思います。数を変更して500ピクセル上に移動できれば、適切な場所にあり、会社が新しいドライバーをリリースするまで6か月待つ必要はありません。

何か案は?

17
dfree

のさまざまなキーとフォルダを確認してください

HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Video

具体的には、最も内側のMonXXXXXXXサブフォルダーはAttach.RelativeXおよびAttach.RelativeY値は、ピクセル0、0に対するモニターの位置です。

奇妙なことに、ここで2台のモニターを備えたWindows 7マシンをチェックすると、2台目のモニターが表示されないようです。しかし、私のXPマシンは私の3つすべてを表示するため、マイレージは異なる場合があります。

他に何もないなら、それは出発点です!

8

Windows 7でキーを探している人にとっては、次のフォルダの1つにあります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\

探す Position.cxおよびPosition.cy各サブフォルダー。 16進文字列を編集する必要があります。

2進/ 10進/ 16進コンバーター:

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

27
Sean

なぜこれが機能したのか知っていればいいのですが、機能することはわかっています。

(ネガティブはレジストリで許可されていないため)モニターをUPにするには、次のようにattach.relativeYの値を使用する必要があります:4294967040

その部分を理解するのを助けてくれたこのフォーラムに感謝- http://www.ureader.com/msg/164488.aspx

その番号の最後の4桁を下に変更すると、モニターがダウンし、その逆も同様です。これはattach.relativeXでも機能します。少し調整して、私のセットアップは通常に戻りました。

誰が機能的なドライバーを必要とするか

4
dfree

レジストリに必要な数を取得するには、4294967296からマイナスにする量を差し引きます。つまり、4294967296-250 = 4294967046の場合です。

オタクのために...

ここでの煩わしさは、レジストリエディターが32ビットを符号なし10進整数またはバイナリデータの16進表現以外のものとして解釈しないためです。ただし、Windowsがディスプレイを配置するときにそのバイナリデータを取得すると、符号付き整数として解釈されます。 Windowsは、32ビットの符号付き整数が負であることを認識するために、最後のビットを1(左端)に設定し、残りのビットを反転します。したがって、-1は11111111 11111111 11111111 11111111(16進数:FF FF FF FF)のバイナリ値になります。これを(レジストリエディターのように)符号なし10進整数に変換すると、4,294,967,295になります。したがって、私たちの目的では、0は4,294,967,296に相当します。これに負の数を追加するだけで、レジストリエディタがバイナリ形式で保存し、システムが後で負の符号付き整数として解釈する必要がある符号なし10進整数を取得できます。 。

2
dynamichael

負の値を計算する代わりに、すべてのモニターを囲む場合に描画する仮想ボックスの物理的な左上に論理0,0を作成することで、すべての値を正に保つと理解しやすくなる場合があります。モニターを上下に動かすとき、他の人を本当に右と下に押しやるようなものだと考えてください。

たとえば、1280x1024と1920x1200のモニターでは、最初の小さい方がデフォルトで2番目の右上になり、最初の左下ではなく、物理的に配置され(左)、位置合わせされます(下端は同じ高さです)。 、トップはもちろん低いので低くなります)。

したがって、2番目の1920x1080モニターで開始するのは位置0,0で、最初のモニターは1920,0でした。最初のモニターの負の-(1920 + 1280)、(1200-1024)を計算する代わりに、最初のモニターをすべて正の値0、(1200 -1024)に、2番目のモニターを1280、0に配置しました。

Windowsをログオフしてから再度ログオンすると、設定が適用されます。これがWindows Hyper-V Serverで機能することも知っておくと便利です(2012 R2で実行したところです。つまり、これらの設定はWindows 8および8.1でも機能します)。これは、画面解像度設定からロックアウトされているが、「ベアメタル」スタイルのホストPC(更新や再起動はほとんど必要ありません)を実現し、リモートデスクトップ経由で内部の仮想マシンで純粋に作業する(別のマシンからコピーする)場合に非常に便利です。 )。

元の答えを提供してくれたtechie007のおかげで、それがすべてを解決する鍵となりました。このバリアントを有用とマークした場合は、彼の回答と質問も「上に」することを忘れないでください。

1
Tony Wall