编辑:(不再适用,问题重新打开)。
为什么这不是链接问题的欺骗?
问题方面的观点:AFAICT(现在我已经应用了解决方案,所以我无法测试),就我而言,我设置的默认应用程序更改从未生效。在链接的问题中,标题表明它在当前会话期间有效。
答案方面的观点:那里的解决方案在这里几乎不适用。(即使它有效,我在概念上认为它们不应该被视为重复,但这无关紧要)。
社区方面的看法:从实际的角度来看,如果标记为 dupe 会降低找到此 OP 的机会,则可能对其有类似问题的其他人有害……搜索参数可能(相当?)与其他 OP 的参数不同.
我在 Win 10 中安装了 Adobe Acrobat X 和 Adobe Acrobat Reader DC,并且我希望我的 PDF 文件的默认应用程序(例如在资源管理器中双击打开文件的应用程序)是 Adobe Acrobat X仅适用于我的用户。
- 我发现无法以通常的方式[设置→应用程序→默认应用程序] 进行这项工作,因为当我双击 PDF 时,它会使用 Acrobat Reader DC [西班牙语] 打开:
- 我可以右键单击→打开方式→Adobe Acrobat,如果我选择选择另一个应用程序,我看到的与上面的屏幕截图一致:
- 我尝试更改以下注册表项,现在默认应用程序是 Edge;到目前为止,我无法恢复:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\OpenWithList\MRUList
有没有办法通过注册表或其他方式解决这个问题?
可能相关:
- 在 Windows 10 中为受保护的文件类型配置默认应用程序
Windows 10 [ ] 中的新注册表设置UserChoice
可能会控制此行为 - 无法更改用于在 Windows 10 中编辑脚本的默认应用程序
- 在 Windows 10 中手动添加要打开的程序
- 在 Windows 10 注册表中设置默认的 pdf 查看器应用程序?
- 如何将 Adobe Acrobat Pro 或 Acrobat Reader 设置为 Windows 10 用户的默认 .pdf 应用程序?
- 设置默认 PDF 查看器
- 设置默认 PDF 查看器
- 在安装了 Acrobat Reader DC 的情况下无法使 Acrobat 9 默认(此条目建议使用“蛮力”方法更改指向的可执行文件
HKEY_CLASSES_ROOT\AcroExch.Document.DC\shell\Read\command
) - DISM 默认应用程序关联服务命令行选项
- Windows 10 – 设置 PDF 默认应用程序 – 文件关联
- 修复“应用程序默认值已重置”Windows 10 重置文件关联
- 如何在应用程序设置期间关联默认程序(例如 pdf 文件)
每个用户的默认应用程序是通过注册表项定义的
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice
。Hash
但是,由于有保护条目,直接设置它是不可能的。如果哈希值与 Progid 不一致,Windows 会将其重置为默认条目。要避免创建哈希值的麻烦,请使用 SetUserFTA 实用程序。
该实用程序在SetUserFTA:UserChoice Hash failed – Set File Type Associations per User or Group on Windows 8/10 和 2012/2016/2019文章中进行了描述和下载。
harrymc 使用SetUserFTA描述的方法效果很好。要更改关联,必须输入
我花了一些时间才找到的关键点是 Adobe Acrobat 的正确 ProgID。我发现它的方式是在注册表中搜索
acrobat.exe
(启动regedit.exe
,然后 <Ctrl>+f ->acrobat.exe
,勾选所有 3 个复选框)。我发现键
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.eps\UserChoice
包含值(作为名称/数据)Hash
/<hash> 和ProgId
/Applications\Acrobat.exe
所以我执行了
瞧,Acrobat 是默认应用程序。我通过交替执行上述和
它在 Acrobat 和 Reader 之间交替作为默认应用程序。
请注意,
Hash
每次执行上述命令后 value 的数据都会发生变化,即使 value 的数据相同ProgId
。这是 的“保护”作用,Hash
也是需要使用SetUserFTA.exe
或替代方法的原因,而不是直接更改数据的价值ProgId
。