Bonjour,
J'utilise la fonction IsFileInUse, récupérée sur le 'net', qui permet de savoir si un fichier est en cours d'utilisation par une autre application :
En compilant en Win32, elle donne les résultats attendus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function IsFileInUse(fName : string) : boolean; var HFileRes : HFILE; begin Result := false; if not FileExists(fName) then exit; HFileRes := CreateFile(pchar(fName), 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;
Par contre en Win64, un fichier ouvert et en cours d'utilisation par une autre appli n'est pas détecté !
J'utilise Delphi XE7 sous Windows 7.
Comment faire pour que le résultat soit le même en Win64 ?
Merci d'avance pour vos réponse.
BDE78
Partager