Inno setup中定制安装路径

简介: 原文:Inno setup中定制安装路径我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法。 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function MyDestDir(SubDir:String):...
原文: Inno setup中定制安装路径

我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法。
用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下:
1,写一个函数,来返回新的安装路径,如:
function MyDestDir(SubDir:String):String;
begin
  if SubDir = '' then
    Result := RootDestFolder
  else
    Result := RootDestFolder + '\'+ SubDir;
end; 
2,把原来使用{app}的地方都改成:{code:MyDestDir},安装脚本自己能够调用MyDestDir并得到正确的路径。如:
Source: "test.xml"; DestDir: {code:MyDestDir}; 
Source: "\res\ReloadHigh\*"; DestDir: {code:MyDestDir|res\ReloadHigh}
最后记得加上:UninstallFilesDir={code:MyDestDir}, 否则卸载程序会被放到{app}.
 
注意:
如果在定制后的DLL中修改安装路径,可以让inno setup把原来的路径以TCHAR*的形式传给DLL,DLL直接修改。
但因为PASCAL的String类型并非是C语言的0结尾字符串,它会记录字符串的真实长度,所以被C语言修改后的String不能直接使用。因为长度不一定相同(实际情况是如果长度没变,就是正确的,如果长度有变化,程序安装路径中的文件名就不见了,安装不了)。
所以在从DLL返回后,需要使用Length函数重新给String设置正确的长度。
 
目录
相关文章
|
容器
Inno Setup GIF 显示插件 GIFCtrl (V2.1 版本)
原文 http://restools.hanzify.org/article.asp?id=79  引用来自 test.iss ; -- test.iss --; restools; http://restools.hanzify.org; gifctrl.dll 为一个用于 Inno Setup 的 13 KB 的 gif 显示插件,同样可以显示 BMP 和 JPEG。
1501 0
|
3月前
inno setup打包软件学习
如何使用Inno Setup打包软件,包括打包结果的展示、示例打包脚本的提供、常见错误的解决方法,以及参考资料的链接。文中详细解释了解决“另一个程序正在使用此文件”和“桌面图标无法修改”等问题的方法,以及如何正确设置打包脚本中的文件路径和图标。
122 0
inno setup打包软件学习
|
4月前
|
资源调度 前端开发 JavaScript
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
一个比较完整的Inno Setup 安装脚本
原文:一个比较完整的Inno Setup 安装脚本 增加了对ini文件设置的功能,一个安装包常用的功能都具备了。 [Setup]; 注: AppId的值为单独标识该应用程序。; 不要为其他安装程序使用相同的AppId值。
1636 0
Inno setup定制安装界面
原文:Inno setup定制安装界面 Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我的界面。
2426 0
|
机器学习/深度学习 缓存 自然语言处理
一个比较完整的Inno Setup 安装脚本(转)
一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了。 [plain] view plaincopy [Setup]   ; 注: AppId的值为单独标识该应用程序。
2732 0
|
Windows
Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5
原文 http://restools.hanzify.org/article.asp?id=93 V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题。
1423 0
|
Windows
Inno Setup 安装前卸载原程序(转)
很多時候我們需要在安裝文件之前卸載原有的程序而不是覆盖安装,本文的code就是实现了这样的功能。 实现原理是:從注冊表'UninstallString'項中读取卸载信息,用Exec进行静默卸载。 下面code中APP_NAME为你的程序名,可以去注冊表中确认。
1637 0