Oben hatte ich geschrieben:
Zitat von
Garfield:
Nun scheint bei Zeile 104, 105 ein Fehler zu sein. Denn (CDROMDeviceID = PropVal) kann nicht eintreten, weil PropVal zum Beispiel '
IDE\CDROM...' ist.
Dies waren die Zeilen:
Delphi-Quellcode:
...
PropVal := (FWMIObj.Properties_.Item('DeviceID', 0) as ISWbemProperty).Get_Value;
if not (VarIsEmpty(PropVal) or VarIsNull(PropVal)) and (CDROMDeviceID = PropVal) then
...
Nach einigem googeln und nachdenken bin ich auf folgendes gekommen: Ich will die Informationen zu einem Laufwerk. Alles was ich habe, ist der Laufwerksbuchstabe. Das ist der DriveLetter. Mit einen : dahinter wird daraus ein Drive.In der Registry kann man - zumindest bei
Win9x - Einträge 'Drive' mit zum Beispiel dem Wert 'E:' finden. Also habe ich DeviceID durch Drive ersetzt und als Ergebnis wird mir als '*.Name' mein Laufwerksname zurückgegeben.
Nachtrag:
Unter Win98SE muss die Variable 'wbemConnectFlagUseMaxWait' durch 0 ersetzt und anstelle von '*.Name' '*.Description' verwendet werden. Als '*.Name' wird das Laufwerk zurückgegeben.