Windows 在哪里存储其“打开方式”设置?

发布于 2024-09-27 10:51:34 字数 322 浏览 4 评论 0原文

我正在尝试通过文件扩展名以编程方式检查文件关联(例如 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

挽你眉间 2024-10-04 10:51:34

查看:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

其中的子键是您重新分配的分机号。在其下将有 UserChoice 和 OpenWithList 子键,其中将包含您的重新定义。

您可能还想阅读http://support.microsoft.com/kb/950505,其中讲述了关于你的问题。

更新

从 Windows 8 开始,生活变得更加复杂。要创建扩展关联,需要计算自定义哈希。

幸运的是,有人对这个过程进行了逆向工程,并创建了一个 PowerShell 脚本来完成此操作,而无需通过任何 GUI。

您可以在以下 GitHub 链接中找到它:

https://github.com/DanysysTeam/PS-SFTA

Take a look in:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

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

寄意 2024-10-04 10:51:34

这是一个由两部分组成的查找。

首先,查找 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.).

花落人断肠 2024-10-04 10:51:34

打开:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp\OpenWithList

提示:“编辑”>“查找”在这些情况下非常方便。 :)

On:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp\OpenWithList

Tip: Edit>Find is pretty handy at these situations. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文