获得通过Java的Windows文件关联(Get Windows files association

2019-10-17 10:27发布

我认为这将是一件容易的事,但。 。 。 我希望我的Java程序来获取用户的Windows文件关联。 换句话说,我想知道用户所使用的打开.txt文件,将该.cvs文件等assoc命令和FTYPE命令提供的信息,而不是用户。 换句话说,如果我把我的文本编辑器,记事本++,ASSOC FTYPE并没有表现出来。 它们显示系统默认,记事本,来代替。 它看起来像我不得不从注册表获取该信息,但我有两个问题。 1)我不知道确切的注册表项我想拉(虽然我已经看了“REG查询HKEY_CURRENT_USER,HKEY_CLASSES_ROOT等)2)我不知道如何从注册表中拔出钥匙。我”见过JNI提及,但还没有想出的细节。感谢任何提示。

Answer 1:

在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的建议对您的应用程序。

*我敢肯定有对“类”更好的名字,我只是不知道它。



Answer 2:

看看在Eclipse的程序类,它应该给你想要的东西: http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg %2Feclipse%2Fswt%2Fprogram%2FProgram.html 。

如果你想启动程序,使用桌面级(如MadProgrammer建议)



文章来源: Get Windows files associations via Java