Matti
2007-01-16, 22:15:15
Hi,
für ein Festplatten-Tool will ich ein Laufwerk sperren:
dn:='\\.\'+hdi.Partitions[i]+':';
hDevice:=CreateFile(pointer(dn),GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
if not deviceiocontrol(hdevice,FSCTL_LOCK_VOLUME,nil,0,nil,0,dummy,nil) then begin
showmessage('Kann Volume '+hdi.Partitions[i]+': nicht sperren');
CloseHandle(hdevice);
goto 1;
end;
Das Problem ist, daß deviceiocontrol immer false zurückgibt, was ja bedeutet, daß Dateien auf dem Laufwerk geöffnet sind. Wie kann man rausbekommen, welche Datei das ist und von welchem Programm sie benutzt wird? ...oder habe ich in dem Code-Stück einen Fehler???
Gruß
Matti
für ein Festplatten-Tool will ich ein Laufwerk sperren:
dn:='\\.\'+hdi.Partitions[i]+':';
hDevice:=CreateFile(pointer(dn),GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
if not deviceiocontrol(hdevice,FSCTL_LOCK_VOLUME,nil,0,nil,0,dummy,nil) then begin
showmessage('Kann Volume '+hdi.Partitions[i]+': nicht sperren');
CloseHandle(hdevice);
goto 1;
end;
Das Problem ist, daß deviceiocontrol immer false zurückgibt, was ja bedeutet, daß Dateien auf dem Laufwerk geöffnet sind. Wie kann man rausbekommen, welche Datei das ist und von welchem Programm sie benutzt wird? ...oder habe ich in dem Code-Stück einen Fehler???
Gruß
Matti