Windows 在哪里存储其“打开方式”设置?
Posted
技术标签:
【中文标题】Windows 在哪里存储其“打开方式”设置?【英文标题】:Where does Windows store its "Open With" settings? 【发布时间】:2011-04-24 21:30:48 【问题描述】:我正在尝试通过文件扩展名(例如.jnlp
文件)以编程方式检查文件关联。我一直在读
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\JNLPFile\Shell\Open\Command
是要检查的注册表项。但是,如果您通过 Windows 资源管理器更改关联:
打开方式 > 选择程序 >(始终使用所选程序)
更改根本没有反映在此注册表项中。这些信息还存储在哪里?
【问题讨论】:
【参考方案1】:看看:
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
【讨论】:
【参考方案2】:这是一个由两部分组成的查找。
首先,您查找 HKEY_CLASSES_ROOT\[file_extension] 的默认值。对于您的扩展名 .jnlp,该值为“JNLPFile”。我们称之为 [file_descriptor]。
现在您可以查找 HKEY_CLASSES_ROOT\[file_descriptor]\Shell\[action]\command 的默认值(其中 [action] 是您感兴趣的 shell 操作,例如:打开、打印、编辑等) .
【讨论】:
【参考方案3】:开启:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp\OpenWithList
提示:编辑>Find 在这些情况下非常方便。 :)
【讨论】:
以上是关于Windows 在哪里存储其“打开方式”设置?的主要内容,如果未能解决你的问题,请参考以下文章