mir fällt gerade auf, dass der auf der letzten seite vorgeschlagene source-code (WMDeviceChange) nicht funktioniert.
folgende funktion gibt keinen wert zurück, da if (Maske and 1) = 1
niemals zutrifft:
Der Fehler liegt im Code
Code:
if (pDBVol^.dbcv_flags and $0001) = $0001 then
Der Wert "$0001" ist für den Wechsel eines CD/DVD-Laufwerks gültig.
Mit USB-Drives (Stick, Harddisk)) aber wird die dann folgende Schleife niemals durchlaufen, also der Laufwerksbuchstabe nicht erkannt.
Für USBs muss es vielmehr heißen:
Code:
if (pDBVol^.dbcv_flags and DBTF_REMOVE) = DBTF_REMOVE then
wobei:
Code:
Const
DBTF_REMOVE = $0000;
DBTF_MEDIA = $0001;