问题描述
我正在使用Inno安装程序,并试图关联Windows 7中Program Files (x86)
中的程序.
I am using Inno Setup and am trying to associate a program that is located in the Program Files (x86)
in Windows 7. I have the following:
#define MyAppName "MyView"
#define MyAppExeName "MyView.exe"
[Setup]
AppName={#MyAppName}
[Registry]
Root: HKCR; Subkey: ".mpl"; ValueType: string; ValueName: ""; ValueData: "MyView"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "MyView"; ValueType: string; ValueName: ""; ValueData: "MyView"; Flags: uninsdeletekey
Root: HKCR; Subkey: "MyView\delta.ico"; ValueType: string; ValueName: ""; ValueData: "{app}\GeoView.EXE,0"
Root: HKCR; Subkey: "MyView\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYVIEW.EXE"" ""%1"""
有关该协会为何无法正常运作的任何建议?
Any suggestions for why the association is not working?
推荐答案
如果要将程序与扩展名相关联,只需在iss文件中添加此指令即可:
If you want to associate a program with an extension just add this instruction in your iss file :
在该部分
[Setup]
ChangesAssociations = yes
^-安装程序将告诉资源管理器在安装结束时刷新其文件关联信息,而卸载将在卸载结束时进行同样的操作.
^-Setup will tell Explorer to refresh its file associations information at the end of the installation, and Uninstall will do the same at the end of uninstallation.
在此部分
[Registry]
Root: HKCR; Subkey: ".mpl"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}"; ValueData: "Program {#MyAppName}"; Flags: uninsdeletekey; ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}\DefaultIcon"; ValueData: "{app}\{#MyAppExeName},0"; ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}\shell\open\command"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; ValueType: string; ValueName: ""
说明
Root: HKCR; Subkey: ".magi"; ValueData: "MyMAGIApplication"; ValueType: string; ValueName: ""; Flags: uninsdeletevalue
.该指令在注册表中添加".magi"键,在HKEY_CLASSES_ROOT(HKCR)中更准确.在此指令中,我们还有ValueName=""
,因此它在注册表中获取默认值.
Explanations
Root: HKCR; Subkey: ".magi"; ValueData: "MyMAGIApplication"; ValueType: string; ValueName: ""; Flags: uninsdeletevalue
. This instruction add ".magi" key in the registry, with more accurate in HKEY_CLASSES_ROOT (HKCR). In this instruction we also have ValueName=""
so it get the default value in the registry.
Root: HKCR; Subkey: "MyMAGIApplication"; ValueData: "Program MAGI"; ValueType: string; ValueName: ""; Flags: uninsdeletekey
为了在HKCR中添加键"MyMAGIApplication
",其值为"Program MAGI".
Root: HKCR; Subkey: "MyMAGIApplication"; ValueData: "Program MAGI"; ValueType: string; ValueName: ""; Flags: uninsdeletekey
In order to add the key MyMAGIApplication
in HKCR with the value "Program MAGI".
Root: HKCR; Subkey: "MyMAGIApplication\DefaultIcon"; ValueData: "{app}\MAGI.EXE,0"; ValueType: string; ValueName: ""
为了关联可执行文件中包含的图标. "0"表示它是可执行文件MAGI.EXE中的第一个图标.
Root: HKCR; Subkey: "MyMAGIApplication\DefaultIcon"; ValueData: "{app}\MAGI.EXE,0"; ValueType: string; ValueName: ""
In order to associate an icon contains in the executable. "0" indicates that it's the first icon present in the executable MAGI.EXE.
Root: HKCR; Subkey: "MyMAGIApplication\shell\open\command"; ValueData: """{app}\MAGI.EXE"" ""%1"""; ValueType: string; ValueName: ""
为了添加子项shell \ open \ command.通过此指令,当用户单击扩展名为".magi"的文件时,Windows便可以启动应用程序MAGI.EXE.
Root: HKCR; Subkey: "MyMAGIApplication\shell\open\command"; ValueData: """{app}\MAGI.EXE"" ""%1"""; ValueType: string; ValueName: ""
In order to add the subkey shell\open\command. With this instruction, Windows is able to launch application MAGI.EXE when an user click on a file with extension ".magi".
结果在注册表中:
这篇关于Inno Setup中的文件关联的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!