メモ帳が開いているか確認する方法は?

解決


りょん  2004-07-16 00:19:18  No: 9925

はじめまして。
Delphi6で開発を行っています。

以下のような処理を行いたいのですが、どうすればよろしいでしょうか?

Dドライブの直下に「aaa.txt」というテキストファイルがあります。
これを画面にあるボタンをクリックした時にメモ帳(NOTEPAD.EXE)で起動します。
その後、テキストファイルを開いたまま、再度ボタンをクリックした時に
「ファイルが開いています。閉じてください。」というメッセージを表示したいと思っています。

Excelファイルの場合、
ret := FileOpen( FileName, fmOpenReadWrite or fmShareExclusive);
で戻り値が-1であればExcelファイルが開いているというメッセージは表示させることができましたが、
テキストファイルの場合は、開いていても閉じていても戻り値は1以上のため
メッセージを表示させることができませんでした。
どのようにすれば、テキストファイルが開いているか確認することができるのでしょうか?
教えてください。


TtPIPICH  URL  2004-07-16 01:25:26  No: 9926

るるとん@Kです
FindWindow等でメモ帳のウインドウが開いているかどうかを確認してはどうでしょうか?


りょん  2004-07-16 01:34:28  No: 9927

返信ありがとうございます。

例えばどのようにFindWindowを使えばいいのでしょうか?
ヘルプで見つからなかったもので・・・。
サンプルなどあれば教えてください。


りょん  2004-07-16 01:59:05  No: 9928

FindWindowで無事に解決することができました!
ありがとうございました。

サンプルソースを記述しておきます。
ちなみにFindWindow内のテキスト名には「- メモ帳」という文字も
追加しておかなければ開いているか確認することができませんでした。。

var
  ActiveHandle: THandle;

begin
  ActiveHandle := FindWindow(nil , 'aaa.txt - メモ帳');
  if ActiveHandle <> 0 then
  begin
    Showmessage('ファイルが開いています。閉じてください。')
    Exit;
  end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加