AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi WMI Monitore auslesen - Array[0..15] auslesen aber wies
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Piro · begonnen am 20. Mär 2019 · letzter Beitrag vom 21. Mär 2019
Antwort Antwort
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, 16: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
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#2

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

  Alt 20. Mär 2019, 16:45
Was ergibt denn ShowMessage(Value); ?

Eigentlich müsste SerialNumber eine Zeichenfolge sein, damit könnte man Value auch als String definieren.
Funktioniert nicht eventuell auch schon showMessage(vOut.SerialNumberID); ?
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

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

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

  Alt 21. Mär 2019, 16:00
Moin,

das hatte ich ganz vergessen, zu erwähnen, dass ging leider nicht. Da es ein Arry Variant ist, laut Fehlermeldung.

Siehe Screenshot.

Daher auch die Idee jedes Element einzeln anzusprechen aber die Inhalte der Elemente ergeben für mich leider keinen Sinn. Eventuell muss man noch etwas konvertieren.

vartype ergibt 8204.
Miniaturansicht angehängter Grafiken
showmessageerrormeldung.png  

Geändert von Piro (21. Mär 2019 um 16:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

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

  Alt 21. Mär 2019, 16:18
Könntest du denn mal die Zahlen aus dem Array posten?

Edit: Die folgende Zeile müsste doch die Lösung sein:
Zitat:
$Mon_Serial_Number = ([System.Text.Encoding]::ASCII.GetString($Monitor.SerialNumberID)).Replac e("$([char]0x0000)","")
Die Zahlen im Array sind einfach die ASCII-Werte der entsprechenden Zeichen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (21. Mär 2019 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

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

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

  Alt 21. Mär 2019, 16:32
Kann ich gerne machen.
Bin aber erst nächste Woche Freitag wieder im Büro

Aber dann poste ich sie sofort.

Vielen Dank schon mal für die Unterstützung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz