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