function InUse(MyFileName: string): boolean; var HFileRes: HFILE; begin Result := false; if not FileExists(MyFileName) then exit; HFileRes := CreateFile(pchar(MyFileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Result :(HFileRes INVALID_HANDLE_VALUE); if not Result then CloseHandle(HFileRes); end; procedure TForm1.Button1Click(Sender: TObject); begin if InUse('C:\MonDossier\MonFichierEnCours.exe') then begin ShowMessage('Fichier occupé'); end else begin ShowMessage('Fichier libre'); end; end;