在我的软件中,我使用ShellExecuteEx
打开显示为本地.htm
文件的报告。有时在某些最终用户系统上,.htm
文件没有默认文件关联。
要在Windows 10之前的系统上设置此类文件关联,我将安装以下注册表项以使用IE:
Key: HKEY_CURRENT_USERSoftwareClasseshtm.fileShellopenCommand
REG_SZ name: ""
REG_SZ value: "C:Program Files (x86)Internet Exploreriexplore.exe" "%1"
Key: HKEY_CURRENT_USERSoftwareClasses.htm
REG_SZ name: ""
REG_SZ value: htm.file
Key: HKEY_CURRENT_USERSoftwareClasses.htm
REG_SZ name: PerceivedType
REG_SZ value: Document
然后我通知Windows资源管理器更改:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
它运行良好,但是您如何对Windows 10上的Microsoft Edge执行相同的操作?
PS.:
我不想在那里使用IE,因为它总是显示一个额外的选项卡,其中包含切换到Edge的唠叨,这对我的最终用户来说非常混乱。
在 Windows 10 上,它是使用IApplicationAssociationRegistrationInternal(">2a848e25-d688-4aa3-8e55-0c16cb3a2dfb"( 完成的。
创建 SHCreateAssociation注册
Set ">AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9" for Microsoft Edge ProgId
(在 Windows 10- 1803、17134.820上测试(