ファイルをオープンしているアプリケーションの特定方法

このQ&Aのポイント
  • Cryptainer PEを使用したファイルのマウント仕組みについて詳しく説明します。
  • ドライブ内のファイルがオープン中であるため、アンロードできないエラーメッセージの原因と、開かれているファイルを特定する方法について解説します。
  • また、ファイルをオープンしたままのアプリケーションが死んだ場合、ファイルの状態はどうなるのかも詳しく説明します。
回答を見る
  • ベストアンサー

ファイルをオープンしているアプリケーションの特定方法

Cryptainer PEという暗号化ソフトを使っています。このソフトでは、暗号化されたファイルをロード(マウント)すると、空きドライブ(例えばF:\)に割り当てられ、エクスプローラ等で通常のドライブとしてアクセスできる仕組みになっています。 このドライブをアンロード(マウント解除)使用とするときにしばしば、「ドライブ内のファイルがオープン中だからアンロードできない」といったメッセージが表示され、アンロードできないことがあります。 エクスプローラも含め、タスクマネージャで表示されるアプリケーションは全て終了させています。 どのファイルが開かれているかは特定できないわけですが、そのドライブの何れかのファイルをオープンしているアプリケーション(プロセス)を特定する方法はありますか? また、ファイルをオープンした状態のまま死んでしまったアプリケーションがいた場合、ファイルの状態(オープン・クローズ)はどうなるのでしょうか? OSはWindows XP Professional SP2です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kusa_mochi
  • ベストアンサー率76% (1599/2089)
回答No.1

Sysinternalが公開している ProcessExplorer を使えば、あるプロセスが使っているDLL及びハンドルを調べる事が出来る。 fileタイプのハンドルで該当ドライブの中のファイルを捕まえているプロセスが無いか調べれば分かるかもしれない。 (そのツールは元々その様なことに使う為のツールではないので、時間は掛かると思うが)  【窓の杜:ProcessExplorer】   http://www.forest.impress.co.jp/lib/sys/wincust/taskservice/prcsxplorer.html ちなみにアプリケーションが異常終了した場合は、オープンしているハンドルがそのままになると思うので、その様な状況になることは十分有りうると思う。

goohyokochi
質問者

お礼

回答ありがとうございます。 早速、ProcessExplorerを使ってみたところ、確かにプロセス毎にハンドル、DLLが見え、実際にオープン中のファイル名を確認することができました。 また、ハンドルの検索もできるため、暗号化ドライブがマウントされた状態のファイル名(パスまで)をSubstringとして探せるようなので、ハンドルを持ったプロセスが残っていれば探し出せそうです。 異常終了したアプリケーションのプロセスはこのツールでは表示されないですよね。 今のところ、現象が発生していないので確認できていませんが、試してみたいと思います。 ありがとうございました。

その他の回答 (1)

  • kusa_mochi
  • ベストアンサー率76% (1599/2089)
回答No.2

異常終了したプロセスは、「終了」しているのでProcessExplorerからは当然の事ながら見えないと思う。

goohyokochi
質問者

お礼

いろいろとご教授いただき、ありがとうございました。 その後、アプリケーションを終了したのにアンロードできない現象が発生しました。 開かれているファイルハンドルをProcess Explorerの検索機能で見つけることができたのですが、プロセスを見つけることができませんでした。 しかし、"Handle view"で、Handleを削除することができるみたいで、これを実行すると、暗号化ソフトでアンロードすることができました。 結局、犯人のプロセス・アプリケーションを見つけることはできなかったのですが、ファイルハンドルを削除することで対応できました。ファイルハンドルを削除することの害もないと思いますが、暗号化ソフトを強制終了させるよりかは安心な気もしています。 ありがとうございました。

関連するQ&A

  • ファイルオープンについて

     一般的に、エクスプローラーで選んだファイルをダブルクリックすると、アプリケーションソフト起動後、ファイルがオープンされますが、私のパソコンは、アプリケーションは起動するのですが、ファイルオープンがエラーとなります。  しかたなく、アプリケーションを起動した後、ファイルオープンの操作をしているのですが、エクスプローラーで選んだファイルをダブルクリックすると、アプリケーションソフトが起動してファイルがオープンするようにするには、どうしたらいいんでしょう。

  • ディレクトリ内の全ファイルをオープンする方法

    特定のディレクトリ内に存在する全てのファイルを順次オープン・クローズするプログラムを作成したいと思います。 例えば、特定のディレクトリに下記のファイルがあるとします。 A.txt B.txt このときにA.txtをオープンし内容を読み込みクローズし、次にB.txtを同じようにオープンし内容を読み込んでクローズするプログラムです。内容を読み込んで処理する部分は問題なく、また上記のように存在するファイルが決まっていれば何も問題はないのですが、下記の場合にはどのように存在するファイルを探せばよいのかがわかりません。 ・何ファイルあるかわからない ・存在するファイルは必ずテキスト ・ファイル名は決まっていない(perlで問題なく読み込めるファイル長) なお、特定のディレクトリに存在するファイルを順次全て読み込めればよいので、その読み込む順番にこだわりはありません。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Perl
  • Excelのオープン

    こんにちは エクスプローラからダブルクリックで、Excelブックをオープンします。 複数オープンした時、これまではExcelヘッダーの「ウィンドウ(W)」にそれらのファイル名が表示されました。 ところが、あるときから複数オープンしても「ウィンドウ(W)」でのファイル名は1つだけです。 タスクマネージャで見るとブックの数だけExcelのプロセスがあります。 つまり、別プロセスでオープンされていることになります。Excelのファイルで開くを行えば、同一プロセスでオープン出来ます。 エクスプローラで同一プロセスで開く、別プロセスで開くという切替があるのでしょうか? あるとすれば、それをお教えください。 あるいは別の処理で同一プロセスで開けるようになるでしょうか? Windows7 Excel2000です。

  • 特定のアプリケーション以外をミュートにする方法

    特定のアプリケーション以外をミュートにする方法 特定のアプリケーション以外のサウンドをミュートにする方法・フリーソフトを探しております。 Windows7のミキサーコントロールですと新しく起動したプロセスはミュートにならないので役に立ちません。 どなたかよい方法やソフトをご存じないでしょうか。よろしくお願いいたします。

  • ファイルからアプリケーションの起動

    どなたか、教えて下さい。 PHPにて作成済みのアプリケーションファイル(csv等)のファイル名を画面に表示するのですが、 それをクリックした際にアプリケーションを起動し、その指定ファイルをオープンしたいと思います。 どのようにすれば出来るのでしょうか? ファイルはサーバー側に、アプリケーションソフトはローカル側に入っています。 宜しくお願い致します。

    • 締切済み
    • PHP
  • テキストファイルの特定行の削除方法

    Accessからテキストファイルのオープンし、特定行を削除してクローズしたいです。どうすれば良いでしょうか。

  • open中のファイルをrename

    オープン中のファイルをflockによる排他をしたままrenameしたいのですがどうもうまくいきません。 sysopen(LOCK, "$file", O_WRONLY);   もしくは open(LOCK, "> $file"); flock(LOCK, 2); rename($tempfile,$file); close; close前にrenameするとロックが外れてしまいます。 close後にrenameをするとやはりロックが外れた状態でのrenameになります。 renameするファイル以外にflock専用ファイルを固定で一つ用意すれば簡単なのですが openしたいファイル数は相当な数があり、各ファイルごとにロックをかけたいのです。 全ファイル分のflock専用ファイルを用意するか、排他方式をmkdirにする以外 何か良い手立てはございますでしょうか。

  • 特定のファイルを自動的に暗号化するフリーソフト

    Windowsで稼働するソフトで、特定のファイルを自動的に暗号化するフリーソフトを探しています。これをタスクに登録して特定のファイルを自動的に暗号化させるのが目的です。 暗号化ですが、ファイル名と拡張子を自動的に暗号化するものでもかまいません。ZIP圧縮の暗号化など、暗号が簡単ではないにしろ、暴かれやすいような暗号化をするフリーソフトは除きます。 どなたか、ご教授の程宜しくお願い致します。

  • ファイルの暗号化

    MOやDVD-RAMなど、簡単に書き込めるドライブを好んで使っているのですが、 不特定の人に見られたくないファイルや重要なファイルなどを書き込む時は 暗号化ソフトで暗号化したり、圧縮ソフトで圧縮してパスワードを設定しています。 しかし、圧縮、展開、暗号化、複合化・・・これらの作業が結構面倒に感じます。 ファイルが多いと時間もかかりますし。 ドライブのディスク全体に暗号化を施して、 ログインログオフが出来るようにして ポイポイっとファイルを出し入れできるようにしてくれるソフトってありませんか? また、暗号化、圧縮のわずらわしさから開放してくれるようなソフトがあれば それを紹介してくださればかなり助かります。 よろしくお願いします。

  • ファイルを開くアプリケーションの選択方法?

    私のパソコンは「DynaBook Satellite 4000X」で、ソフトは Win-98、IE-6、OE-6 等を使っています。 「ファイルのダウンロード」の画面で、ファイル名'toeic28.ram' を開こうとしたら、「ファイルを開くアプリケーションの選択」 画面が出て、「ファイル'.ram'を開くアプリケーションを選択して 下さい。使いたいアプリケーションが一覧にない場合は、「その他」 をクリックして下さい。'.ram'ファイルの説明欄(D):空白(カーソル の点滅あり)の次に、このファイルを開くアプリケーション(C): プルダウン方式で、ACCWIZ, AcroRd32...RealPlayer...wmplayer 等」の選択肢」がありますが、'.ram'ファイルに関連したものが 見当たりません(「その他」をクリックしても見当たりません)。 以前にも特定の拡張子が付いたファイルを開こうとしたら,同様に 「ファイルを開くアプリケーションの選択」画面がでたが、選択 する(関連付ける)アプリケーションがわからず(なくて)困り ました。 どのようにしたら、この問題を解決する(特定の拡張子、この場合は '.ram'が付いたファイルをひらく)ことができるでしょうか? 初心者にわかるように、具体的な手順をご教示下さい。