Hallo!
Habe folgendes Problem (muß vorrausschicken, daß ich nicht Win2000 habe, also keine ADSI-Schnittstellen)
Ich versuche die MAC-Adressen aufzulisten. Das funktioniert in VB sehr einfach
<PRE>
Dim MyWBEMObjectSet As WbemScripting.SWbemObjectSet
Dim MyWBEMObject As WbemScripting.SWbemObject
Dim MyWBEMProperty As WbemScripting.SWbemProperty
Set MyWBEMObjectSet = GetObject("winmgmts:root/cimv2").InstancesOf ("win32_networkadapter")
'*** Collection
For Each MyWBEMObject In MyWBEMObjectSet
Set MyWBEMProperty = MyWBEMObject.Properties_("MACAddress")
If Not IsNull(MyWBEMProperty) Then
'*** MAC-Adresse
MsgBox MyWBEMObject.Name & " Adresse: " & MyWBEMProperty.Value
End If
Set MyWBEMProperty = Nothing
Next
</PRE>
Leider stehe ich in Delphi an. Ich habe da zwar einen Ansatz, aber das wars auch schon :-))
<PRE>
procedure TForm1.btnMACAddressClick(Sender: TObject);
var
pbc : IBindCtx;
iChars : longint;
pMk : IMoniker;
MyWMI : Variant;
begin
try
OleCheck(CreateBindCtx (0, pbc));
OleCheck(MkParseDisplayName (pbc, 'winmgmts:root/cimv2', iChars, pMk));
pMk.BindToObject(pbc, NIL, IDispatch,MyWMI);
//MyWMI.InstacesOf('win32_networkadapter');
ShowMessage('Okay');
except
ShowMessage('ERROR GetObject');
end;
end;
</PRE>
Wie kann ich InstancesOf aufrufen, bzw. was mache ich da alles falsch?
Danke, auf Hilfe hoffend, Biggi
Habe folgendes Problem (muß vorrausschicken, daß ich nicht Win2000 habe, also keine ADSI-Schnittstellen)
Ich versuche die MAC-Adressen aufzulisten. Das funktioniert in VB sehr einfach
<PRE>
Dim MyWBEMObjectSet As WbemScripting.SWbemObjectSet
Dim MyWBEMObject As WbemScripting.SWbemObject
Dim MyWBEMProperty As WbemScripting.SWbemProperty
Set MyWBEMObjectSet = GetObject("winmgmts:root/cimv2").InstancesOf ("win32_networkadapter")
'*** Collection
For Each MyWBEMObject In MyWBEMObjectSet
Set MyWBEMProperty = MyWBEMObject.Properties_("MACAddress")
If Not IsNull(MyWBEMProperty) Then
'*** MAC-Adresse
MsgBox MyWBEMObject.Name & " Adresse: " & MyWBEMProperty.Value
End If
Set MyWBEMProperty = Nothing
Next
</PRE>
Leider stehe ich in Delphi an. Ich habe da zwar einen Ansatz, aber das wars auch schon :-))
<PRE>
procedure TForm1.btnMACAddressClick(Sender: TObject);
var
pbc : IBindCtx;
iChars : longint;
pMk : IMoniker;
MyWMI : Variant;
begin
try
OleCheck(CreateBindCtx (0, pbc));
OleCheck(MkParseDisplayName (pbc, 'winmgmts:root/cimv2', iChars, pMk));
pMk.BindToObject(pbc, NIL, IDispatch,MyWMI);
//MyWMI.InstacesOf('win32_networkadapter');
ShowMessage('Okay');
except
ShowMessage('ERROR GetObject');
end;
end;
</PRE>
Wie kann ich InstancesOf aufrufen, bzw. was mache ich da alles falsch?
Danke, auf Hilfe hoffend, Biggi
Comment