关联某类型文件给程序

优质
小牛编辑
146浏览
2023-12-01
有时候,我们需要关联某个类型的文件给一个程序来打开,比如,现在我设置.ecp为扩展名的文件总是用EasyCHM打开,在

MUI 预定义常量

下面添加声明参数值:

!define SHCNE_ASSOCCHANGED 0x08000000
!define SHCNF_IDLIST 0

在相应的区段添加:

;关联文件类型
WriteRegStr HKCR ".ecp" "" "ecp.Script"
WriteRegStr HKCR "ecp.Script" "" "Easy CHM project file"
WriteRegStr HKCR "ecp.Script\DefaultIcon" "" "$INSTDIR\EasyCHM.exe,1"
WriteRegStr HKCR "ecp.Script\shell\open\command" "" '$INSTDIR\EasyCHM.exe "%1"'
;刷新文件关联图标
System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'

(注:经试验,刷新文件关联图标部分的代码似乎不起作用,请知道原因的达人与我联系。)

(经家明同学反馈,已更新可以正常工作的代码:System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'