【问题标题】:How to set up Microsoft Edge file association to open .htm files?如何设置 Microsoft Edge 文件关联以打开 .htm 文件?
【发布时间】:2018-10-17 19:55:24
【问题描述】:

在我的软件中,我使用ShellExecuteEx 打开以本地.htm 文件形式呈现的报告。有时,在某些最终用户系统上,.htm 文件没有默认文件关联。

要在 Windows 10 之前的系统上设置此类文件关联,我将安装以下注册表项以使用 IE:

Key: HKEY_CURRENT_USER\Software\Classes\htm.file\Shell\open\Command
REG_SZ name: ""
REG_SZ value: "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "%1"

Key: HKEY_CURRENT_USER\Software\Classes\.htm
REG_SZ name: ""
REG_SZ value: htm.file

Key: HKEY_CURRENT_USER\Software\Classes\.htm
REG_SZ name: PerceivedType
REG_SZ value: Document

然后我将更改通知 Windows 资源管理器:

SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);

效果很好,但如何在 Windows 10 上为 Microsoft Edge 做同样的事情?

PS.:
我不想在那里使用 IE,因为它总是显示一个额外的选项卡,带有切换到 Edge 的唠叨,这对我的最终用户来说非常混乱。

【问题讨论】:

  • 您可以改为使用 html 文件作为参数执行 Edge
  • 让您的软件修改用户的关联很可能是个坏主意。您的程序可能会对某些用户造成伤害。我倾向于检测 ShellExecuteEx 的失败,然后直接打开 Edge。当然 Edge 可能不存在。
  • Windows 10 不允许应用程序任意更改文件关联。它必须由用户通过设置来完成。如果您需要证据,请在之前未安装过的 Windows 10 系统上安装 Google Chrome,并告诉安装程序您要将 Chrome 设置为默认浏览器;这样做时,它会打开相应的设置页面供您自己进行。此外,我刚刚参与了超过 25 个系统从 Windows 7 到 Windows 10 企业版的手动迁移,包括一些全新安装,没有一个缺少 .htm 关联。
  • @KenWhite:我希望你是对的。因为处理 .htm 等基本扩展名的缺失文件关联非常令人沮丧。不过,请注意,我不是在谈论更改默认 Web 浏览器。这是关于使用具有.htm 扩展名的本地路径打开一个本地文件。 PS。回到你所描述的,我想 90 年代后期的反垄断诉讼并没有教会 MS 什么。哈哈。
  • 是的,就是他。

标签: winapi windows-10 microsoft-edge windows-shell


【解决方案1】:

在 Windows 10 上,通过 IApplicationAssociationRegistrationInternal ("2a848e25-d688-4aa3-8e55-0c16cb3a2dfb")

完成

使用SHCreateAssociationRegistration创建

为 Microsoft Edge ProgId 设置“AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9

(在 Windows 10 - 1803、17134.820 上测试)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2023-03-22
    • 2016-06-05
    相关资源
    最近更新 更多