ファイルが使用中かどうか調べる
3 FileInUse 動作確認 Delphi2007 更新日 2007/08/24(金)

ファイルが使用中かどうかを調べる関数です。
自分自身のファイル名 Application.ExeName を与えると
使用中の結果を返します。

────────────────────
{-------------------------------
//  ファイルが使用中かどうかを調べる関数
備考:
参考: http://www.scalabium.com/faq/dct0066.htm
履歴:       2003/09/28
//------------------------------}
function FileInUse(FileName: string): Boolean;
var hFileRes: HFILE;
begin
  Result := False;
  if not FileExists(FileName) then exit;
  hFileRes := CreateFile(
    PChar(FileName), 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;
//テストコード
//Memo1.Lines.Add(BoolToStr(FileInUse(
//  Application.ExeName), True));
//Memo1.Lines.Add(BoolToStr(FileInUse(
//  ExtractFilePath(Application.ExeName)+'Unit1.pas'), True));

//------------------------------
参考────────────────────
http://www.scalabium.com/faq/dct0066.htm