Einzelnen Beitrag anzeigen

Redhair

Registriert seit: 5. Dez 2007
8 Beiträge
 
Turbo Delphi für Win32
 
#1

Prüfen, ob eine Datei gerade in Benutzung ist...

  Alt 19. Mai 2011, 10:21
Über Google habe ich folgendes gefunden:
http://www.delphi-treff.de/tipps/dat...-in-benutzung/

Nun habe ich ein ganz simples Programm zum Testen geschrieben und je einmal unter XP und Windows 7 laufen lassen:
Delphi-Quellcode:
procedure TForm3.Timer1Timer(Sender: TObject);
begin
  if IsFileInUse('datei.txt') then
    Memo2.Lines.Add('in Benutzung')
  else
    Memo1.Lines.Add('frei');
end;

function TForm3.IsFileInUse(Path: string): boolean;
var
  hFile: THandle;

begin
  Result := False;
  if not FileExists(Path) then Exit;

  hFile := CreateFile(pchar(Path), GENERIC_READ or GENERIC_WRITE or GENERIC_EXECUTE,
                      0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := hFile = INVALID_HANDLE_VALUE;
  if not Result then CloseHandle(hFile);
end;
Es funktioniert unter XP einwandfrei, aber unter Windows 7 wird nie erkannt, dass die Datei benutzt wird.
Woran könnte das liegen?
  Mit Zitat antworten Zitat