2

(アクティブ - ウィンドウが最前面にあるファイル。)

現在アクティブな pdf (.pdf)、単語 (.doc、.docx)、またはメモ帳 (.txt) ファイルのテキストをリアルタイムで抽出する問題に取り組んでいます。JNA を試してみたところ、アクティブなファイル名 (a.pdf など) と exe 名は取得できましたが、ファイル パス (C:/Desktop/.../a.pdf など) は取得できませんでした。完全なファイル パスが必要です。パスがわかれば、対応するファイルを読み取ってその中のテキストを抽出できるからです。(C:/Program Files/adobe.exe などの exe パスは必要ありません。)

JNA のドキュメントを確認しましたが、現在アクティブなファイル (Java アプリケーションではない) のパスを提供できるメソッドが見つかりませんでした。

または、現在フォーカスされているファイル/アイコンの完全なパスを提供するパッケージがあると思います (たとえば、a.pdf をクリックしてから開くと、マウスが a.pdf にフォーカスします)。JNI を試しましたが、まだそうではありません。そのような方法を見つけました。

Java を使用して現在アクティブなファイル (Java アプリケーションではない) のパスを取得する方法、またはマウス フォーカスで現在のファイル/アイコンのパスを取得する方法について、いくつか提案をお願いします。

どうもありがとう!

4

1 に答える 1

1

UNIX では、lsof コマンドを使用して、プロセスによって開かれたファイルを取得できます。私はWindowsで似たようなものを少し検索し、このスレッドを思いつきました:

特定のファイルが Windows で開いているかどうかを確認するにはどうすればよいですか?

lsof -p pid と同等

sysinternals ハンドルと listdlls からの結合された出力です。つまり、

ハンドル -p pid

listdlls -p pid

sysinternals pslist で pid を見つけることができます

Unix 用語に慣れていない場合、「pid」はプロセス ID、つまり各プロセスを識別する番号を意味します。acrobat の pid を見つけてから、プロセスのハンドルを取得すると、acrobat によって開かれたすべてのファイルを取得できるはずです。

免責事項: 私は Mac/Linux ユーザーなので、上記のコマンドは試していません!

于 2012-05-30T03:16:33.967 に答える