admin 管理员组文章数量: 1086019
2024年3月6日发(作者:php后门代码生成)
inno setup拷贝文件夹 收藏
、脚本范例分析:先来看看一段用INNO SETUP脚本向导创建的基本脚本的[Setup]段:[Setup]
AppName=Premiere 6.5 汉化补丁-----------------(程序名称)
AppVerName=Premiere 6.5 汉化补丁------------(程序名称+版本)
AppPublisher=浩子工作室----------------------------(开发单位或作者)AppPublisherURL=------(开发单位或作者网址)AppSupportURL=-------(技术服务网址)AppUpdatesURL=-------(更新升级网址)
DefaultDirName={pf}AdobePremiere 6.5-----(默认安装路径,{pf}就是“Program files”文件夹)
DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)AllowNoIcons=yes--------------------------------------(创建快捷方式图标)LicenseFile=D:汉化许可文件.txt------------------(显示许可协议)
InfoBeforeFile=D:汉化汉化说明.txt-------------(显示软件说明)
OutputDir=成品-----------------------------------------(安装程序存放位置)OutputBaseFilename=Premiere 6.5 汉化补丁--(安装程序名称)
SetupIconFile=汉.ico----------------------------------(安装程序图标)Compression=lzma-------------------------------------(压缩器:Lzma)SolidCompression=yes--------------------------------(压缩方式:一次性压缩)括号里内容是笔者添加的注释,我想大家应该能够理解。不过,作为汉化补丁,一般不需要创建开始菜单项目,不需要创建快捷方式图标,不需要卸载功能,而要求具有自动寻找原程序安装位置的功能,这样可使补丁安装更方便快捷, 因此作了如下修改:(1)去掉以下项目:DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)AllowNoIcons=yes--------------------------------(创建快捷方式图标)(2)增加以下项目:DisableDirPage=yes-------------------------------(不用指定安装路径)DisableProgramGroupPage=yes---------------(不要添加开始菜单项目)DirExistsWarning=no-----------------------------(不提示文件夹已存在) Uninstallable=no-----------------------------------(不要卸载程序) (3)修改以下项目:原来的:DefaultDirName={pf}AdobePremiere
6.5----(默认安装路径,{pf}就是“Program files”文件夹)关键问题是,这个路径是死的,一旦你在安装Premiere 6.5时更改了安装路径,比如有些人喜欢把大程序安装到D盘,这么一来,原路径就无效了,结果您还得手动指定正确的路径。这样的安装程序就显得太“笨”了。那么,如何让补丁程序自动获得原程序的实际安装路径呢?回答是:利用注册表。大多数应用程序安装后都会向注册表的特定位置写入安装和卸载信息,因此,只要让安装程序提取这些信息并转位自己的安装路
径,就可实现自动定位功能。Inno Setup早就支持这个功能了,现在,我们把Premiere 6.5的注册表信息告诉它就行了,请看修改后的:DefaultDirName={reg:HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstallAdobe Premiere
6.5,InstallLocation}-------------(从注册表读取Premiere 6.5的实际安装路径) 接着来看看基本脚本的[Files]段, 前面讲过,这一段是用来定义要打包到安装程序里的文件的, 因此, 要搞清楚这几个名词:Source:-------------文件的存放位置(来源)DestDir:-------------文件要安装到什么地方(目标)Flags:----------------对文件的附加处理参数(标示)下面来看看具体内容: [Files]
Source: "D:汉化"; DestDir: "{app}"; Flags:
ignoreversion
Source: "D:汉化主程序*"; DestDir: "{app}"; Flags:
ignoreversion recursesubdirs createallsubdirs
Source: "D:汉化插件*"; DestDir: "{app}"; Flags: ignoreversion
recursesubdirs createallsubdirs
生词注释:{app}----------------这是个常量, 代表程序安装路径,只要你在[Setup]段中的DefaultDirName项中进行了设定,其他地方就可以用它来代替。可能有人会问,常量是什么?通俗地说就是固定词汇,它们用简单的符号分别代表操作系统中的一些固定目录,使脚本简洁明了。具体内容可参看Inno Setup的帮助文本里的相关说明。Ignoreversion--------不理会文件的版本问题。Recursesubdirs-------把主文件夹和子文件夹一块儿打包(一锅端)。Createallsubdirs-----安装
时创建相应的子文件夹。对[Files]段的修改:很多汉化补丁都是直接用汉化过的文件去替换原文件,很少在原程序目录里创建新的文件夹,因此可以去掉 Flags 标示中的 Createallsubdirs 项。
在安装的时候执行某个可执行文件...
[Files] Source: "你要执行的文件名"; DestDir: "{app}";
Flags: ignoreversion deleteafterinstall .....
[Run] Filename: "{app}你要执行的文件名";
Description: "Setup"; Flags: skipifsilent shellexec
附:
Inno Setup的安装脚本包含的主要段落:
[Setup] 段:安装和卸载程序的全局设置,如作者信息、安装目录、压缩方式、是否卸载等。
[Types] 段:定义安装组件的类型,如“完全安装”、“最小安装”、“选择安装”。
[Components] 段:定义可供选择安装的所有组件
[Tasks] 段:定义安装期间所有由用户定制的任务。
[Dirs] 段:定义用户想额外创建的目录。
[Files] 段:定义要打包到安装程序里的文件。
[Icons] 段:定义要创建在开始菜单、桌面或任务栏等位置的快捷方式和图标。
[INI] 段:定义向用户系统中 .INI 文件中添加的新条目。
[InstallDelete] 段:定义要在安装之前删除的文件或文件夹。
[Languages] 段:定义安装程序中可使用的语言(适用于多国语言版)。
[Registry] 段:定义安装过程中要读取、新建或删除的注册表项。
[Run] 段:定义要在安装结束时运行的程序。
[UninstallDelete] 段:定义要在卸载时删除的其他文件或文件夹。
[UninstallRun] 段:定义要在开始卸载前运行的程序
本文来自CSDN博客,转载请标明出处:
Inno Setup的常用脚本
InnoSetup 2010-01-08 09:08:00 阅读104 评论0 字号:大中小 订阅
安装不同的目录:
[Files]
Source: "我的程序*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "我的程序*"; DestDir: {cf}我的程序; Flags: ignoreversion recursesubdirs createallsubdirs
开始菜单快捷方式:
[Icons]
Name: "{group}我的程序名称"; Filename: "{app}我的程序.exe" ;WorkingDir: "{app}"
桌面快捷方式:
[Icons]
Name: "{userdesktop}我的程序名称"; Filename: "{app}我的程序.exe"; WorkingDir: "{app}"
开始菜单卸载快捷方式:
[Icons]
Name: "{group}{cm:UninstallProgram,我的程序}"; Filename: "{uninstallexe}"
安装完后选择运行:
[Run]
Filename: "{app}我的程序.exe"; Description: "{cm:LaunchProgram,我的程序名称}"; Flags: nowait
postinstall skipifsilent
安装完后自动运行:
[Run]
Filename: "{app}我的程序.exe";
在界面左下角加文字:
[Messages]
BeveledLabel=你的网站名称
选择组件安装:(组件1的Flags: fixed为必须安装)
[Types]
Name: "full"; Description: "选择安装"; Flags: iscustom
[Components]
Name: 组件1文件夹; Description: 组件1名称; Types: full; Flags: fixed
Name: 组件2文件夹; Description: 组件2名称; Types: full
Name: 组件3文件夹; Description: 组件3名称; Types: full
[Files]
Source: "E:组件1文件夹我的程序.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:组件1文件夹*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
Components: 组件1文件夹
Source: "E:组件2文件夹*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
Components: 组件2文件夹
Source: "E:组件3文件夹*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs;
Components: 组件3文件夹
添加关于按钮:
[Code]
{注意:关于按钮单击后执行的过程,一定要写在InitializeWizard()过程之前}
procedure ButtonAboutOnClick(Sender: TObject);
begin
MsgBox('关于对话框。'+#13#10+'另起一行', mbInformation, MB_OK);//显示对话框
end;
{初始化安装向导时会触发的过程,这个过程的名字是INNO内部定义的,不能修改}
procedure InitializeWizard();
begin
with (WizardForm) do//在WizardForm上面创建一个按钮
begin
Left := 32;//按钮距WizardForm左边的距离
Top := 302;//按钮距WizardForm上边的距离
Width := ;//按钮的宽度,这里定义跟'取消'按钮等宽
Height := ;//按钮的高度
Caption := '关于(&A)...';//按钮上的文字
:='宋体';//按钮文字的字体
:=9;//9号字体
OnClick := @ButtonAboutOnClick;//单击按钮触发的过程,就是前面的'ButtonAboutOnClick'过程,注意前面不要漏掉
Parent := WizardForm;//按钮的父组件,也就是按钮'载体',这里是WizardForm(安装向导窗体)
end;
end;
设置界面文字颜色:
[Code]
procedure InitializeWizard();
begin
:= clGreen;//设置开始安装页面第一段文字的颜色为绿色
:= clOlive;//设置开始安装页面第二段文字的颜色为橄榄绿
:= clred;//设置许可协议页面第一段文字的颜色为红色
:= clBlue; //设置许可协议页面第二段文字的颜色为蓝色
:= clWhite;//设置窗格的颜色为白色
end;
判断所选安装目录中原版主程序是否存在:
[Code]
function NextButtonClick(CurPage: Integer): Boolean;
begin
Result:= true;
if CurPage=wpSelectDir then
if not FileExists(ExpandConstant('{app}主程序.exe')) then
begin
MsgBox('安装目录不正确!', mbInformation, MB_OK );
Result := false;
end;
end;
注:
{app}表示默认安装路径为C:Program Files我的程序
{cf}表示默认安装路径为C:Program FilesCommon Files我的程序
颜色:
clBlack(黑色),clMaroon(暗红),clGreen(绿色),clOlive(橄榄绿),clNavy(深蓝),clPurple(紫色),clTeal(深青),clGray(灰色),clSilver(浅灰),clRed(红色),clLime(浅绿),clYellow(黄色),clBlue(蓝色),clFuchsia(紫红),clAqua(青绿),clWhite(白色)。te(白色)。
增加path路径:
[Register]
Root: HKLM; Subkey: "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession
ManagerEnvironment"; ValueType: string; ValueName: "Path"; ValueData: "{olddata};{app}";Flags:uninsdeletekey
版权声明:本文标题:Inno Setup的常用脚本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709674595a543164.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论