我知道,这个问题被问了很多次,但仍然没有答案可以真正解决问题。有一些步骤可以在 Windows 可选功能中获取 WMP,如果丢失则安装它等等 - 我做了所有这些,现在 WMP 运行并播放媒体文件。但是,在 Windows 10 中无法将其设置为默认应用来播放媒体文件类型。
- 转到“默认应用程序”>“音乐播放器”>“选择默认值”- WMP 不存在。
- “按文件类型选择默认应用程序”>“.mp3”>“选择默认应用程序”- WMP 不存在。
- “按应用设置默认值”> Windows Media Player 来了!> 选择“管理”> 查找“.mp3”>“选择默认值” - 唯一的选择是“在 Microsoft Store 中查找应用程序”。
经过长时间的搜索,我找到了这篇文章:https ://www.ghacks.net/2016/02/16/how-to-make-any-program-the-default-on-windows-10/
显然在 1803 之后你应该使用黑客工具将微软自己的 Windows Media Player 设置为默认值。我按照文章中的建议使用了 FileTypesMan,但是当我尝试更改 .mp3 文件的分配时,我从该工具中收到“错误 5:访问被拒绝”。此外,如果我右键单击一个 .mp3 文件并选择“打开方式...”,它仍然建议我去 Microsoft Store,使用记事本、画图、Word 打开,而不是 Windows Media Player。
使 WMP 成为默认媒体播放器的正确方法是什么,使其显示在默认应用程序列表中?
FileTypesMan 无法更改关联类型的原因是因为 Windows 开始使用特殊的秘密哈希保护关联设置。查看
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice
,我看到两个键 ProgId="VLC.mp3" 和 Hash="GmB3NDUc5ck="。我无法更改这些键,因为我需要知道如何生成散列。幸运的是,有人想通了:https ://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/使用该文章中描述的黑客方法和工具,我能够将 .mp3 关联设置为 WMP11.AssocFile.MP3,这是正确安装的 WMP 中的现有关联类型:
SetUserFTA.exe .mp3 WMP11.AssocFile.MP3
运行此命令后,.mp3 注册表项更改为 ProgId="WMP11.AssocFile.MP3" 和 Hash="+ArSXyKb5G8="。
这解决了我直接的可用性问题,如果有合适的方法可以推荐给用户,我仍然很高兴。
我还在系统上的 FileTypesMan 中看到了“拒绝访问”错误,因此我使用 Sysinternal 的进程监视器对其进行了分析,以查看它在哪里失败。显然,注册表项的默认权限是
HKEY_CLASSES_ROOT\WMP11.AssocFile.MP3\shell\play
只允许内置的 TrustedInstaller 帐户进行更改(而不是,例如,管理员帐户)。这可以通过将管理员帐户的写入权限添加到该注册表项来解决。我发现最简单的方法是使用 RegDACL 工具。该工具在作者的官方网站上不再可用,但您仍然可以在此处下载。
在 PATH 环境变量中放入
RegDACL.exe
目录后,打开管理员命令提示符并运行以下命令:(
/GGA:F
:授予预定义组“管理员”完全访问权限)成功执行命令后,您应该可以使用 FileTypesMan 更改分配。