iss脚本的[Registry]添加如下代码:
[Registry]
Root: HKCR; Subkey: ".关联文件的后缀"; Flags: uninsdeletekey
Root: HKCR; Subkey: ".关联文件的后缀"; ValueType: string; ValueName: ""; ValueData: "注册表里软件名称或者描述"
Root: HKCR; Subkey: "注册表里软件名称或者描述"; Flags: uninsdeletekey
Root: HKCR; Subkey: "注册表里软件名称或者描述\DefaultIcon"; Flags: uninsdeletekey
Root: HKCR; Subkey: "注册表里软件名称或者描述\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppIconName}"; Flags:
Root: HKCR; Subkey: "注册表里软件名称或者描述\shell"; Flags: uninsdeletekey
Root: HKCR; Subkey: "注册表里软件名称或者描述\shell\open"; Flags: uninsdeletekey
Root: HKCR; Subkey: "注册表里软件名称或者描述\shell\open\command"; Flags: uninsdeletekey
Root: HKCR; Subkey: "注册表里软件名称或者描述\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName} ""%1"""; Flags:
".关联文件的后缀" 修改为自己的关联文件名后缀
"注册表里软件名称或者描述" 需要改为自己的软件名称
还需要再iss脚本顶端添加如下定义
#define MyAppExeName "软件名称.exe"
#define AppIconName "文件的图标.ico"
如果软件不再安装的根目录需要自己修改{app}\{#MyAppExeName}
同理可能也要修改{app}\{#AppIconName}
最后一行是在传入的文件路径添加双引号,避免文件路径包含空格,程序把文件路径分成多个参数
"{app}\{#MyAppExeName} ""%1"""