A
Hat sich schon erledigt. Ich hatte die Lösung schon vor meiner Nase. Ich hatte GetVolumeInformation schon im Quelltext drin. Wusste aber nicht, dass ich einfach den Rückgabewert davon dazu hernehmen kann, um zu ermitteln ob ein Datenträger eingelegt ist.
Sorry für die Belästigung, ich schreib aber den Quelltext einfach mal rein, damit es für Später hilft.
[DllImport("kernel32.dll")]
public static extern bool GetVolumeInformation( string rootPathName,
[Out] System.Text.StringBuilder volNameBuffer, int volNameSize, out int volSerialNumber,
out int maxComponentLength, out int fileSysFlags,
[Out] System.Text.StringBuilder fileSystemName, int fileSystemNameSize );
bool driveReady = GetVolumeInformation(driveLetter , volName, volName.Capacity, out volSer, out maxCmp, out sysFlgs, fileSysName, fileSysName.Capacity);
Mit driveReady lässt sich dann hinterher überprüfen ob ein Datenträger eingelegt ist. An GetVolumeInformation übergibt man eigentlich nur den "driveLetter". Alle anderen sind leere Variablen die man übergibt, und die man hinterher wieder auswerten kann.
Gruß
Markus Seidl