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"""