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