Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

WMI Monitore auslesen - Array[0..15] auslesen aber wies

  Alt 20. Mär 2019, 15:14
Moin zusammen,

ich lesen mit folgendem Code, die aktuell verbundenen Monitore eines Rechners aus WMI

Delphi-Quellcode:
var
 SWbemLocator1 : ISWbemLocator;
 aSrv : ISWbemServices;
 vNVS : OleVariant;
 aObjSet : ISWbemObjectSet;
 aNVSDummy : IDispatch;
 pEnum : IEnumVARIANT;
 vOut : OleVariant;
 dwRetrieved : LongWord;
 hRes : HResult;
 Value : Variant;
begin
 SWbemLocator1 := CoSWbemLocator.Create;
 aSrv := SWbemLocator1.ConnectServer('localhost','root\WMI','','','','',0,vNVS);

 aObjSet := aSrv.ExecQuery('Select * from WMIMonitorId','WQL', 0, aNVSDummy);
 pEnum := aObjSet.Get__NewEnum as IEnumVARIANT;
 while (TRUE) do
 begin
   hRes := pEnum.Next(1, vOut, dwRetrieved);
   if hRes <> S_OK then
     Break;
   
   Value := vOut.SerialNumberID;
   showMessage(Value[0]); // -> kommt eine 2stellige Zahl raus
   showMessage(Value[1]); // -> kommt eine 2stellige Zahl raus
   showMessage(Value[2]); // -> kommt eine 2stellige Zahl raus
 end;
Es muss eine SerialNumber meines Monitors herauskommen. Leider kommen nur die Zahlen. Hex nach String bringt leider auch nix.
Erwarteter Wert : 7MT018BR2PYU

Wie muss ich Value erzeugen, damit ich die SerialNumber bekommen.

Anbei die Werte aus WMI und das PowerShell Script, wo es funktioniert.

Ich hoffe einer von euch kennt sich da aus.

Vielen Dank im voraus.
Sven
Miniaturansicht angehängter Grafiken
wmi-monitor-auslesen-array-variante.png  
Angehängte Dateien
Dateityp: txt monitor.txt (3,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat