WMI Alle Monitore abrufen, die nicht alle Monitore zurückgeben

8

Ich verwende WMI Win32_MonitorDesktop , um alle Monitorinformationen auf dem System zu erhalten.

Es wird jedoch nur eins zurückgegeben. Ich habe es auf mehreren Computern versucht, und sie haben definitiv mehrere Monitore auf ihnen, verbunden und funktionieren.

%Vor%

Weiß jemand, warum ich nur 1 Monitor zurückbekomme?

Auch wenn ich den Rückgabewert von monitorObjectSearch.Get () einer Variablen zuweise, kann ich die Count Eigenschaft im unmittelbaren Fenster nicht auswerten, da die Funktion immer abläuft.

    
Amit Shakya 14.09.2009, 14:52
quelle

4 Antworten

1

Könnte es sein, dass die Monitore in einem horizontalen Spannweitenmodus (NV- und ATI-Karten) eingerichtet sind, die mehrere Monitor-Setups effektiv zu einem großen Monitor machen? Ansonsten werde ich weiter nachdenken ..

Auch die MSDN sagt ganz konkret , dass wenn diese WMI anrufen Wird mit etwas Vor-Vista verwendet, wird es zu ungenauen Ergebnissen führen!?

    
Siyfion 14.09.2009 14:58
quelle
1

Ich habe versucht, dieses Problem mit WMI auf vielen Systemen (von WinXP-SP3 bis Win10) zu lösen, und ich habe unterschiedliche Ergebnisse auf verschiedenen Rechnern. Es gibt zwei Tabellen, in denen die aktuellen Monitoreinstellungen gespeichert werden können. Der erste ist Win32_DesktopMonitor im cimv2 Namespace, der zweite ist WMIMonitorID im wmi Namespace. Wenn einer von ihnen nur einen Datensatz hat (in der Multi-Display-Einstellung), dann hat der zweite alle Einträge.

Um den Treibernamen des Monitors zu erhalten, sollte man Geräte mit PnPDeviceID finden, die in Datensätzen aus diesen Tabellen in der Win32_PnPEntity Tabelle im cimv2 Namespace gefunden werden. Sie können die Beispiellösung hier überprüfen.

    
baderman 22.04.2016 08:27
quelle
0

Ich verwende den gleichen Code von wmi (win32_Desktopmonitor) auf einem Windows 7-Rechner. Es funktioniert dort auch nicht, in dem Sinne, dass nur ein Monitor zurückgegeben wird, wo es wirklich zwei gibt.

Auch Screen.Allscreens.Length gibt nur 1 Monitor zurück. Die einzige Möglichkeit, das System dazu zu bringen, zwei Monitore zurückzugeben, besteht darin, den Desktop auf die beiden Monitore auszuweiten, aber das tun die meisten Leute nicht.

    
real_yggdrasil 30.12.2010 19:08
quelle
0

Dies beantwortet sicherlich nicht Ihre eigentliche Frage, aber die zuverlässigste Art und Weise herauszufinden, Monitor-Informationen ist, folgende Registrierung zu lesen:

%Vor%

unter HKEY_LOCAL_MACHINE

    
Amit Shakya 23.04.2016 21:55
quelle

Tags und Links