Folgendes habe ich mal irgendwo gefunden und setze es Erfolgreich ein:
Delphi-Quellcode:
function IsFileUsed(const FileName:String): Boolean;
const
AccessMode: array[0..2] of LongWord = (
GENERIC_READ,
GENERIC_WRITE,
GENERIC_READ or GENERIC_WRITE);
ShareMode: array[0..4] of LongWord = (
0,
0,
FILE_SHARE_READ,
FILE_SHARE_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE);
var
Mode : LongWord;
iRes : INTEGER;
begin
Mode := fmOpenRead or fmShareDenyWrite;
iRes := -1;
if ((Mode and 3) <= fmOpenReadWrite) and
(((Mode and $F0) shr 4) <= fmShareDenyNone) then
iRes := Integer(CreateFile(PChar(FileName),
AccessMode[Mode and 3],
ShareMode[(Mode and $F0) shr 4],
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0));
If iRes < 0 then
Result := True
else
Result := False;
If Not Result then CloseHandle(THandle(iRes));
end;
Am sichersten ist es, für ein und dasselbe Programm (be mehrmaligem Start), wenn man eine Datei mit ihren Attributen verriegelt
Gruß Fuchtel