はじめまして。
Delphi6で開発を行っています。
以下のような処理を行いたいのですが、どうすればよろしいでしょうか?
Dドライブの直下に「aaa.txt」というテキストファイルがあります。
これを画面にあるボタンをクリックした時にメモ帳(NOTEPAD.EXE)で起動します。
その後、テキストファイルを開いたまま、再度ボタンをクリックした時に
「ファイルが開いています。閉じてください。」というメッセージを表示したいと思っています。
Excelファイルの場合、
ret := FileOpen( FileName, fmOpenReadWrite or fmShareExclusive);
で戻り値が-1であればExcelファイルが開いているというメッセージは表示させることができましたが、
テキストファイルの場合は、開いていても閉じていても戻り値は1以上のため
メッセージを表示させることができませんでした。
どのようにすれば、テキストファイルが開いているか確認することができるのでしょうか?
教えてください。
るるとん@Kです
FindWindow等でメモ帳のウインドウが開いているかどうかを確認してはどうでしょうか?
返信ありがとうございます。
例えばどのようにFindWindowを使えばいいのでしょうか?
ヘルプで見つからなかったもので・・・。
サンプルなどあれば教えてください。
FindWindowで無事に解決することができました!
ありがとうございました。
サンプルソースを記述しておきます。
ちなみにFindWindow内のテキスト名には「- メモ帳」という文字も
追加しておかなければ開いているか確認することができませんでした。。
var
ActiveHandle: THandle;
begin
ActiveHandle := FindWindow(nil , 'aaa.txt - メモ帳');
if ActiveHandle <> 0 then
begin
Showmessage('ファイルが開いています。閉じてください。')
Exit;
end;
ツイート | ![]() |