如何在Wix中发送SHChangeNotify
在我的Wix项目中,我需要将一个外部应用程序设置为新文件类型的默认程序,因此我在注册表项中添加了一些文件关联(我知道这很奇怪,但我正在开发一个插件,我没有找到处理外部程序的本机方法)。 MSDN说,如果我们更改文件关联,我们应该调用SHChangeNotify。否则,在系统重新启动之前,新关联将不起作用。这是我的问题,我如何在Wix中做到这一点?我找到了一个实现此功能的工具,但我需要的是Wix安装程序中的硬代码如何在Wix中发送SHChangeNotify,wix,Wix,在我的Wix项目中,我需要将一个外部应用程序设置为新文件类型的默认程序,因此我在注册表项中添加了一些文件关联(我知道这很奇怪,但我正在开发一个插件,我没有找到处理外部程序的本机方法)。 MSDN说,如果我们更改文件关联,我们应该调用SHChangeNotify。否则,在系统重新启动之前,新关联将不起作用。这是我的问题,我如何在Wix中做到这一点?我找到了一个实现此功能的工具,但我需要的是Wix安装程序中的硬代码 [解决方案]首先,我按照@BdN3504显示的方式添加ProgId元素。然后我使用自
[解决方案]首先,我按照@BdN3504显示的方式添加ProgId元素。然后我使用自定义操作发送SHChangeNotify。干杯~你看过这个吗 您必须首先在
文件搜索
中找到目标应用程序,然后在扩展
元素中引用该应用程序
<Property Id="TARGETEXE">
<DirectorySearch Path="C:\Program Files (x86)\App"
Depth="0"
AssignToProperty="no"
Id="NppSearch">
<FileSearch Name="Target.exe"
Id="targetExeFileSearch" />
</DirectorySearch>
</Property>
<ProgId Id='Fileassoc.assoc' Description='File extension description'>
<Extension Id='assoc' ContentType='application/assoc'>
<Verb Id='open' Command='Open' TargetProperty='TARGETEXE' Argument='"%1"' />
</Extension>
</ProgId>
有关详细信息,请参阅文档
- 和