14

Windowsの表示プロパティ(#1、2 ...など)に表示されているモニターIDを取得しようとしていますが、方法が見つからないようです。EnumDisplayMonitorsとEnumDisplayDevicesを使用してみました。どちらも「\。\DISPLAY1」のようなものを返します。ただし、この数は、特に2枚のビデオカードを使用して3台以上のモニターを駆動している場合は、Windowsに表示される数と常に一致するとは限りません。この情報を取得するために欠落しているAPI呼び出しはありますか、それともレジストリまたは他の場所から取得する方法はありますか?ありがとう!

私はこれらのメソッドを試しました:
Win32: EnumDisplayMonitors、EnumDisplayDevices:どちらもアクティブではないモニターを返しません。また、どちらも正しいIDを返しません。
WMI:「select * from Win32_DesktopMonitor」はすべてのモニターを返すわけではなく、IDもありません。
レジストリ:さまざまな場所でモニターを見つけましたが、探している情報が見つかった場所はありません。

どんな助けでも大歓迎です。:)

更新:これらは私が探しているモニター番号です: 代替テキスト

4

3 に答える 3

2

目的によっては、ドライバーベースのソリューションを検討することをお勧めします。nVidiaには、コントロールパネルのほとんどの機能にアクセスできるまともなライブラリがあることを知っています。

于 2010-04-08T20:32:09.490 に答える
1

EnumDisplayDevices を 2 回呼び出しましたか? 次のようなものを試してください:

while (EnumDisplayDevices(0, dev, &dd, 0))
{
...
  while (EnumDisplayDevices(dd.DeviceName, devMon, &ddMon, 0))
  {
   ...
  }
}
于 2010-04-09T09:29:21.750 に答える
0

推測ですがiDevNum+1、Windows の表示プロパティに Windows が表示されているようです。

于 2010-04-08T15:37:44.460 に答える