1

これは簡単な作業だと思いましたが。. . Java プログラムでユーザーの Windows ファイルの関連付けを取得したいと考えています。つまり、ユーザーが .txt ファイルや .cvs ファイルなどを開くために何を使用しているかを知りたいのです。assoc および ftype コマンドはその情報を提供しますが、ユーザーには提供しません。つまり、テキスト エディターを Notepad++ に設定した場合、assoc と ftype はそれを表示しません。代わりに、システムのデフォルトであるメモ帳が表示されます。レジストリからその情報を取得する必要があるようですが、2 つの問題があります。1) プルしたい正確なレジストリ キーがわかりません (ただし、"reg query HKEY_CURRENT_USER、HKEY_CLASSES_ROOT などを見ました)。2) レジストリからキーをプルする方法がわかりません。 JNIが言及されているのを見たことがありますが、詳細を理解していません。

4

2 に答える 2

0

Win7 では、ファイル拡張子ごとに「クラス」* を見つけることができます。

HKLM\SOFTWARE\Classes\<extension>\(Default)

鍵。

たとえば、私のマシンでは

HKLM\SOFTWARE\Classes\.txt

の (デフォルト) キーがありtxtfileます。

その同じパスで、クラスのファイルを開くものを見つけることができますtxtfile:

HKLM\SOFTWARE\Classes\txtfile

のサブパスを持つ必要があるのはどれですか...\shell\open\command

私のシステムでは、

HKLM\SOFTWARE\Classes\txtfile\shell\open\command\(Default)

%SystemRoot%\system32\NOTEPAD.EXE %1

.txt ファイルを開く実行可能ファイルを見つけるために解析できます。

ユーザー固有のカスタマイズの場合は、置き換えることができます

HKLM\SOFTWARE\Classes\

HKCU\Software\Classes\

そうは言っても、あなたのアプリケーションで可能であれば、MadProgrammer の提案が気に入っています。

*「クラス」にはもっと良い名前があるはずですが、私はそれを知りません。

于 2012-11-27T01:52:42.653 に答える
0

Eclipse の Program クラスを見てください。 %2Feclipse%2Fswt%2Fprogram%2FProgram.html .

プログラムを起動したい場合は、デスクトップクラスを使用してください(MadProgrammerが提案したように)

于 2012-11-27T01:53:01.623 に答える