(通过滚动到最底部跳到问题,但在这种情况下不要盲目投票关闭......)
是的,我知道这个话题在这里、这里和这里被反驳了很多次,但我保证这不是重复的。这些都没有帮助将软件与更大规模的文件扩展名相关联。事实上,我发现-至少在Windows 10(1803) -你可以更方便地修改协会,但无论是FileTypesMan(我试过1.83版本)招也不是工具assoc和ftype协同工作。
所有这些方法都失败了,因为它们产生了 - 在双击相关类型/扩展名的文件时 - RT 风格的对话框让我“继续使用这个应用程序”,将“照片”作为默认值,然后提供处理以下文件类型的潜在候选软件列表。
我希望我选择的软件可以在没有 ifs 和 buts(以及额外的对话框)的情况下打开这些文件。
示例:我希望 SumatraPDF 与 PDF(默认为 Edge)和 IrfanView 一起打开一系列电子书文件类型以打开图像。安装应用程序后,我收到了大量来自 Windows 的通知,指出文件关联已被重置。好吧,控制我的系统上发生的事情到此为止。
所以我以管理员身份启动了 IrfanView 并让它设置了文件关联。唉,UserChoiceFileTypesMan 中的列一直显示AppX43hnxtbyyps62jhe9sqpdzxn1790zetc,至少在我的系统上对应于 Windows 附带的照片(商店)应用程序。对于这个例子,我将讨论.bmp文件。
在尝试UserChoice通过 FileTypesMan修复该列时,我遇到了一条错误消息,表明访问被拒绝。嗯好吧...
所以我让Process Monitor向我展示了访问被拒绝错误影响的键。果然它指出了在里面写值的企图HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bmp\UserChoice。所以我检查了该密钥的权限,没有发现任何可疑之处。但是在“高级安全设置”对话框中仔细检查UserChoice密钥时,我看到了这一点:
不过,自从我在大学担任系统管理员以来,DenyACE 就很少见了。现在,敏锐地意识到 ACL 中的 ACE 优先级规则,我立即意识到这个DenyACE 是问题所在。它支配了我的用户帐户的 ACL。
FileTypesMan 之类的工具必须主动删除该 ACE,然后在进行任何操作后将其放回原处。显然它不会这样做(可能是我应该报告的缺陷?)。除了获取和启用备份和/或恢复权限(也就是用户权限)之外,我不知道其他任何方法——这相当于回避 ACL 和 …