Dein If war schon sehr nah dran:
Delphi-Quellcode:
IF not VarisNull(WMIProperty) and (WMIProperty<>nil) then
Specs.Values['NetworkAdapter'+Inttostr(i)+'.Speed']:=WmiProperty.Get_Value;
Korrekt ist:
Delphi-Quellcode:
if not VarIsNull(WmiProperty.Get_Value) then
Specs.Values['NetworkAdapter'+Inttostr(i)+'.Speed']:=WmiProperty.Get_Value;
Edit Nachtrag:
Das Problem ist ja, das nicht das Property selber NULL ist, sondern 'nur' der Wert des Propertys.