マルチモニタの設定で画面を識別しようとしていますが、その画面にリンクされているデータを保存しています。再起動後も確実に画面を識別できますか?ディスプレイの識別
Screen.DeviceName
は、.NetのScreen
クラスを認識していますが、新しいスクリーンセーバーをインストールした後など、常に1つの画面を指しているようです。
マルチモニタの設定で画面を識別しようとしていますが、その画面にリンクされているデータを保存しています。再起動後も確実に画面を識別できますか?ディスプレイの識別
Screen.DeviceName
は、.NetのScreen
クラスを認識していますが、新しいスクリーンセーバーをインストールした後など、常に1つの画面を指しているようです。
DeviceIDはEnumDisplayDevices
APIです。各画面で一意であると思われ、ドライバの更新後には変更されません。
WMIは私が以前に試したことのように私には疑問の余地がありません。私のマルチモニタの設定では1つのモニタしか返せません。
WinFormsではなくWMIを試してください。 (S DisplayDetails クラスなど)
次のポストは、モニターとその詳細を取得する方法を示しています。Monitor ID and Serial Number
編集:
私の提案:私は取得することによってこれを解決し
using System.Management;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DesktopMonitor");
foreach (ManagementObject obj in searcher.Get())
Console.WriteLine("PNP Device ID: {0}", obj ["PNPDeviceID"]);
私は2台のモニターを持っており、 –
デバイスドライバを変更しても特定の画面を追跡できることは本当にありますか?本当の疑問は、なぜあなたはそれをしたいと思いますか? –
私は多少のマルチモニタツールを書いているので、各画面の設定を保存する必要があるからです。 –