3

昨夜、2 台のモニターが接続された Windows 7 Embedded Standard 64 ビットを実行している PC で奇妙な現象が発生しました。[ディスプレイの解像度] ダイアログには、モニターがディスプレイ 1 とディスプレイ 2 (左から右) として表示されます。両方の画面を使用するプログラムを作成して実行すると、ディスプレイ 1 で期待していた出力が一番右のディスプレイに表示され、ディスプレイ 2 で期待していた出力が一番左のディスプレイに表示されました。

ここと Google で時間をかけて、見つけたコードを使用して、System.Windows.Forms.Screen.AllScreens の内容を表示するコンソール アプリを作成しました。

// For each screen, add the screen properties to a list box.
foreach (var screen in System.Windows.Forms.Screen.AllScreens)
{
    Console.WriteLine("Device Name: " + screen.DeviceName);
    Console.WriteLine("Bounds: " +
        screen.Bounds.ToString());
    Console.WriteLine("Type: " +
        screen.GetType().ToString());
    Console.WriteLine("Working Area: " +
        screen.WorkingArea.ToString());
    Console.WriteLine("Primary Screen: " +
        screen.Primary.ToString());
}

1 台のテスト マシンで実行したところ、期待どおりの結果が得られました。AllScreens の順序は、表示解像度ダイアログの順序と一致します。

しかし、問題のあるマシンでは、上記のコードの出力が逆になりました。DISPLAY1 は 2 番目の画面 (一番右) の位置にあり、DISPLAY2 は一番左の画面に配置されていました。

それは本当に奇妙です。これは私のプログラムを使用していないため、.NET の内部にあるものです。同じコードは他の同様のマシンでも機能するため、一般的な問題ではないと思いますが、このマシンに限定された問題です。同様の問題をさらに検索しようとしましたが、おそらく検索用語が原因で空になりました(モニター、画面、.NETはすべて、この問題とは関係のない多くのアイテムに一致します)。

これを以前に見た人、そして理想的には、それを修正する方法についてアイデアを持っている人はいますか? .NET 4 パッケージを再インストールしても解決しませんでした。[ディスプレイの解像度] ダイアログで場所を変更してから元に戻しても、途中で再起動しても役に立ちませんでした。

ありがとう。

4

1 に答える 1