在Inno Setup中,我尝试创建此快捷方式:
“C:\ Program Files(x86)\ MapInfo的 </跨度> \ Professional \ MapInfow.exe“”{app} \ DPImap.MBX“
它适用于静态文本,但MapInfow.exe的位置可能会有所不同……(“ProgramFiles(x86)”))+“ MapInfo的 </跨度> \专业\ MapInfow.exe”
[任务]名称:desktopicon;描述:{cm:CreateDesktopIcon}; GroupDescription:{cm:AdditionalIcons};标志:未经检查
[图标]姓名:{group …
它应该是:
[Icons] Name: {group}\DPImap; Filename: "{code:MapInfoExecutable}"; \ Parameters: """{app}\DPImap.mbx"""
您还应该缓存选定的文件名,否则您至少会获得两次提示,甚至可能更多次。
var FileName: string; function MapInfoExecutable(Param: String): String; begin if FileName = '' then begin if not GetOpenFileName( 'Locate your MapInfo Application', FileName, ExpandConstant('{pf32}'), 'Executable (*.exe)|*.exe', 'exe') then begin { Return default #MapInfoDefault if user does not provide any file } FileName := '{#MapInfoDefault}'; end; end; Result := FileName; end;
或者实际上甚至更好,使用自定义页面,而不是在无法控制的时刻弹出的对话框。
看到 Inno Setup提示外部文件位置 。
即使您喜欢该对话框,也可以在您选择的特定页面/时刻弹出它,将所选文件名缓存到全局变量并使用该变量 MapInfoExecutable 。
MapInfoExecutable
请注意,我已删除 ExpandConstant 从 '{#MapInfoDefault}' - 这是胡说八道。看到 在Inno Setup Pascal Script中运行时评估预处理器宏 。
ExpandConstant
'{#MapInfoDefault}'