Hallo und danke für die schnellen Antworten.
1) Wenn ich im Explorer Dateien auf eine leere DVD-RW
kopiere, kommt die Meldung: Datenträger wird 4.7 GB
formatiert.
Dann, nach ca. 10 Sekunden erscheint das Explorer-
Fenster xxx Dateien in xxx Bytes werden kopiert.
Ist der Kopiervorgang abgeschlossen und ich werfe
den Datenträger aus, kommt in der Taskleiste ein
Balloon-tipp:
"Warten Sie, bis der Datenträger abgeschlossen wird,
damit er auf anderen Computern verwendet werden kann."
2) Wenn ich nun während dieses Vorganges folgenden
Delphi Code ausführe,
Delphi-Quellcode:
var prvDVDDrives : string[24];
procedure TForm1._getDVDDrives;
var drivemap, mask : DWORD;
i : integer;
driveStr : string[24];
root : string;
begin
driveStr:='';
root:='A:\';
drivemap:=GetLogicalDrives;
mask:=1;
for i:=1 to 32 do begin
if ((mask and drivemap) <> 0) then
if (GetDriveType(PChar(root)) = DRIVE_CDROM) then
driveStr:=driveStr+root[1];
mask:=mask shl 1;
inc(root[1]);
end;
{-}
prvDVDdrives:=driveStr+#0;
end;
dann habe ich in prvDVDdrives alle Laufwerksbuchstaben stehen,
die im
OS für ein DVD Laufwerk stehen.
Also z.B: prvDVDdrives:='F';
Das funktioniert so lange, bis ich eben etwas mit Hilfe
des Win-Explorers auf F: schreibe.
Dann kopiert der Explorer und kopiert und kopiert...
Ich kann dann nicht mehr auf F: zugreifen, und muß
im Taskmanager den Explorer beenden.
Startet dann die Windows Oberfläche neu, ist der Datenträger
in F: kaputt, kann weder gelesen noch sonstwas werden.
Da während des Formatierens (und Schreibens) mit dem
Win-Explorer KEIN extra Process gestartet wird, kann ich auch
nicht in meinem Programm auf solch einen laufenden Process
prüfen, bevor ich obigen Delphi-Code ausführe, um eben dann
diese Ausführung zu verhindern.
MfG,
terence