我知道,这个问题被问过很多次了,但仍然没有答案可以真正解决问题。有一些步骤可以在 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 之后,您应该使用黑客工具将 Microsoft 自己的 Windows Media Player 设置为默认播放器。我按照文章中的建议使用了 FileTypesMan,但是当我尝试更改 .mp3 文件的分配时,该工具提示“错误 5:访问被拒绝”。此外,如果我右键单击 .mp3 文件并选择“打开方式...”,它仍然建议我前往 Microsoft Store,使用记事本、画图、Word 打开,而不是使用 Windows Media Player。
将 WMP 设为默认媒体播放器的正确方法是什么,以便它会显示在默认应用程序列表中?
答案1
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="。
这解决了我眼前的可用性问题,如果有合适的方法可以推荐给用户就更好了。
答案2
我还在我的系统上的 FileTypesMan 中看到了“访问被拒绝”错误,因此我使用 Sysinternal 的进程监视器对其进行了分析,以查看它失败的原因。显然,注册表项的默认权限HKEY_CLASSES_ROOT\WMP11.AssocFile.MP3\shell\play
是,只有内置的 TrustedInstaller 帐户才允许进行更改(而管理员帐户则不行)。
可以通过向该注册表项添加管理员帐户的写入权限来解决此问题。我发现最简单的方法是使用 RegDACL 工具。该工具在作者的官方网站上不再可用,但您仍然可以下载它这里。
RegDACL.exe
将目录放入 PATH 环境变量后,打开管理员命令提示符并运行以下命令:
regdacl "HKCR\WMP11.AssocFile.MP3\shell\play" /GGA:F
regdacl "HKCR\WMP11.AssocFile.MP3\shell\play\command" /GGA:F
(/GGA:F
:G咆哮到预定义的G团A管理者”F全部访问)
命令成功执行后,您应该能够使用 FileTypesMan 来更改分配。