5

マルチモニター設定で画面を特定して、その画面にリンクされたデータを保存しようとしています。再起動後も画面を確実に識別するにはどうすればよいですか?

私はScreen.Net のクラスを認識してScreen.DeviceNameいますが、一貫して 1 つの画面を指していないようです (たとえば、新しいグラフィックス ドライバーをインストールした後)。

4

2 に答える 2

0

EnumDisplayDevicesAPIでDeviceIDを取得することでこれを解決しました。画面ごとに固有のようで、たとえばドライバーの更新後も変化しません。

WMI は、以前に試したときに問題外であり、マルチモニター設定で 1 つのモニターしか返されませんでした。

于 2012-06-29T12:11:35.960 に答える
0

WinForms の代わりに WMI を試してください。

次の投稿は、モニターとその詳細を取得する方法を示しています (s. DisplayDetails クラスなど):モニター ID とシリアル番号

編集:

私のおすすめ:

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"]);
于 2012-05-20T18:08:27.920 に答える