アプリ版:「スタンプのみでお礼する」機能のリリースについて

ある処理を行ってその結果をテキスト形(メモ帳など)に出力するもの作成しています。

EXCELだと

FILENO = FreeFile

Open パス名 For Output As #FILENO

これでもし指定のファイルがすでに開いていたらエラーになってエラールーチンで拾えるのですが

テキスト形(メモ帳など)のときだとエラーになりません。

どう対処すればいいのですか?

A 回答 (3件)

メモ帳などは、保存を実行したときにファイルオープン&書き込みをし、保存の処理が終了したらファイルのクローズをしているのだと思います。

なので、VB の通常の Open では、メモ帳などで開いているかどうかを識別することはできないと思います。
極端な話、VB でファイルを作成した後( Close 後 )で、メモ帳を使用して新規作成したファイルを、VB で作成したファイルと同じファイルで上書き保存しようとしたときに、どうしようもないのと同じと思います。
対応策としては、VB でのファイル保存後、読み取り専用にするくらいでしょうか。
    • good
    • 0

実際にやったことが無いので成功するか分かりませんが、、、


APIを使ってみては如何でしょうか?

(1)EnumWindow:開いているウィンドウを列挙する
(2)GetWindowText:ウィンドウのタイトルを取得する
(3)FindWindow:ウィンドウのタイトルからハンドルがあるか確認する

(1)+(2)もしくは(3)で試してみては如何ですか?
例を書くと長くなるので、、、
    • good
    • 0

排他で開く。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A