Windows 在哪里存储其“打开方式”设置?
我正在尝试通过文件扩展名以编程方式检查文件关联(例如 .jnlp
文件)。我继续阅读这
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command
是要检查的注册表项。但是,如果您通过 Windows 资源管理器更改关联:
打开方式 >选择程序> (始终使用选定的程序)
更改根本不会反映在此注册表项中。这些信息还存储在哪里?
I'm trying to programmatically check file associations by the file extension (for example .jnlp
files). I keep reading that
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command
is the Registry key to check. However, if you change the association through Windows Explorer:
Open With > Choose Program > (Always use the selected program)
the change isn't at all reflected in this Registry key. Where else is this information stored?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看:
其中的子键是您重新分配的分机号。在其下将有 UserChoice 和 OpenWithList 子键,其中将包含您的重新定义。
您可能还想阅读http://support.microsoft.com/kb/950505,其中讲述了关于你的问题。
更新
从 Windows 8 开始,生活变得更加复杂。要创建扩展关联,需要计算自定义哈希。
幸运的是,有人对这个过程进行了逆向工程,并创建了一个 PowerShell 脚本来完成此操作,而无需通过任何 GUI。
您可以在以下 GitHub 链接中找到它:
https://github.com/DanysysTeam/PS-SFTA
Take a look in:
and the sub-key of that is the extension you reassigned. Under that there will be the UserChoice and OpenWithList sub-keys which will contain your redefinition.
You may also want to read http://support.microsoft.com/kb/950505 which talks about your issue.
Update
As of Windows 8, life has gotten far more complicated. To create an extension association a custom hash needs to get calculated.
Fortunately, someone has reverse engineered the process and created a PowerShell script to do this without having to go through any GUI.
You can find it at the following GitHub link:
https://github.com/DanysysTeam/PS-SFTA
这是一个由两部分组成的查找。
首先,查找 HKEY_CLASSES_ROOT\[file_extension] 的默认值。对于您的扩展名 .jnlp,该值为“JNLPFile”。我们称之为 [file_descriptor]。
现在您可以查找 HKEY_CLASSES_ROOT\[file_descriptor]\Shell\[action]\command 的默认值(其中 [action] 是您感兴趣的 shell 操作,例如:打开、打印、编辑等)。
This is a two-part look-up.
First, you look up the default value of HKEY_CLASSES_ROOT\[file_extension]. For your extensions, .jnlp, the value is "JNLPFile". Let's call this the [file_descriptor].
Now you can look up the default value of HKEY_CLASSES_ROOT\[file_descriptor]\Shell\[action]\command (where [action] is the shell action you are interested in, e.g.: Open, Print, Edit, etc.).
打开:
提示:“编辑”>“查找”在这些情况下非常方便。 :)
On:
Tip: Edit>Find is pretty handy at these situations. :)