Inno setup中定制安装路径

原文: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设置正确的长度。

 

时间: 2024-09-14 17:13:18

Inno setup中定制安装路径的相关文章

在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤

原文 http://www.cnblogs.com/2356/archive/2009/10/27/1590565.html 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤 ISSkin是Code jock 公司出品的Inno Setup 皮肤插件,用于为Inno制作的安装程序提供皮肤功能. 自Delphi发布2009之后,Inno Setup 开始出现支持Unicode编码的版本,即5.3.x系列,并且官方同时提供Ansi和Unicode版本. 如果了解Delphi

NSIS:在注册表中记录安装路径以便重装或升级时读取

原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬. 第1步:在"安装目录选择页面"前面加入以下代码:  1 !define MUI_PAGE_CUSTOMFUNCTION_show Pageshow 第2步:读取注册表中关于安装路径的键值,如果没有,就使用默认路径. 1 InstallDirRegKey HKCU "Software\eBook Workshop" "&q

inno setup介绍(转)

使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件.关键功能: 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,XP,Me,NT 4.0 (不需要服务包). 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表.同时

Inno Setup使用上的几个问题 (转)

Inno Setup使用上的几个问题: [问题一:Inno Setup 执行REG文件代码?][Run]Filename: "{win}\regedit.exe";Parameters:"/s {tmp}\reg.reg" // 静默参数/S [问题二:安装时,如果已经有同名文件存在,就不更新该文件?][Files]Source: "test.tmp"; DestDir: "{app}"; Flags: onlyifdoesn

Windows8应用默认安装路径怎么修改

  注意:仅测试成功于WIN8系统,WIN8.1慎用(如果你手贱,后果自负) 如何更改WIN8系统应用在笔记本中默认安装路径(此方法仅适用于WIN8系统,WIN8.1请慎重参考) 我们知道WIN8系统应用默认安装路径是在C:Program FilesWindowsApps(这是一个隐藏的文件夹) 通过注册表直接更改应用默认安装路径. 1.按下[Win+R]打开运行,输入regedit启动注册表编辑器, 2.定位到以下的键值: HKEY_LOCAL_MACHINESOFTWAREMicrosoft

Windows8应用默认安装路径修改教程

Win8系统的Metro应用不能随意修改安装路径,默认就安装到我们的系统盘了,难道我们就没有别的办法让Win8商店中的应用安装到别的地方吗?答案是可以的.下面系统天地小编就为大家介绍,那么Windows8应用默认安装路径怎么修改? 注意:仅测试成功于WIN8系统,WIN8.1慎用 如何更改WIN8系统应用在笔记本中默认安装路径(此方法仅适用于WIN8系统,WIN8.1请慎重参考) 我们知道WIN8系统应用默认安装路径是在C:Program FilesWindowsApps(这是一个隐藏的文件夹)

Inno setup定制安装界面

原文:Inno setup定制安装界面 Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我的界面.   首先,脚本中增加如下设置,以禁至所有Inno setup自身显示的界面: DisableDirPage=yes DisableFinishedPage=yes DisableProgramGroupPage=yes DisableReadyMem

如何在Setup中获取Setup的运行路径(不是安装路径)

问题描述 在网上找了好久,没有找到答案,一般都只能获取安装路径,有哪位高人指点一下 解决方案 解决方案二:也遇到同样的问题,有哪位兄弟知道?解决方案三:讨论一下这种实现方法:http://www.cnblogs.com/jetxia/archive/2007/11/20/965212.html解决方案四:怎样实现获取安装路径?

一个比较完整的Inno Setup 安装脚本

原文:一个比较完整的Inno Setup 安装脚本 增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [Setup]; 注: AppId的值为单独标识该应用程序.; 不要为其他安装程序使用相同的AppId值.; (生成新的GUID,点击 工具|在IDE中生成GUID.)AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675};程序名AppName=ISsample;版本号AppVerName=ISsample 1.0.0.0;发布者名AppPubli