0

WMI の仕組みに興味があります。特に、現在 WMI を使用して「Select * from Win32_DesktopMonitor」を介して物理モニターを照会しています。これは、次のような関数によって返される仮想モニターではなく、物理モニターの数を知りたいため、複数のプラットフォームで一貫して正しい結果が得られるためです。 GetSystemMetrics および EnumDisplays。また、デバイス マネージャーのようにレジストリを検査する SetupAPI についても調査しましたが、Vista 以前のバージョンの Windows で誤ってファントム モニターを返す可能性があります。

API 呼び出しを追跡し、wbemtest.exe によって作成された procmon.exe とクエリを作成する独自の実行可能ファイルを使用してイベントを監視しようとしましたが、あまり見つかりませんでした。

WMI の内部動作、API 呼び出しのより詳細なトレース、またはモニターをカウントする信頼できる方法についての洞察をいただければ幸いです。

マイナー ノート: C++ での作業

4

2 に答える 2

2

関心のあるクラス プロパティの MappingStrings 修飾子 (存在する場合) を確認することも価値があります。たとえば、Win32_DesktopMonitor の場合:

DeviceId:
Win32API|Windows GDI|HMONITOR

インストール日:
MIF.DMTF|ComponentID|001.5

モニターメーカー:
Win32Registry

モニターの種類:
Win32Registry

PixelsPerXLogicalInch:
Win32API|デバイス コンテキスト関数|GetDeviceCaps

于 2010-01-21T15:31:47.290 に答える
1

それはデバイス ドライバと対話しますが、どのハードウェアが利用可能かは誰にもわかりません。詳細については、このMicrosoft の記事を参照してください。

于 2010-01-19T21:14:13.427 に答える