http://blog.sina.com.cn/s/blog_72c2eb350100y2sa.html

有人提及想更换安装界面的图片,其实方法很简单,只需要修改inno setup安装目录下的WizModernImage.bmp和WizModernSmallImage.bmp两张图片就可以了。

只需在代码页,添加如下代码,即可实现页面的优化。

 

#define MyAppName "服务端"
#define MyAppVersion "1.3.2"
#define MyAppPublisher "ga526"
[Setup]
AppId={{59FB74DA-DBE1-41EF-B69A-31BE8324D98B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName=c:\ga526\ga526\服务端
DisableDirPage=yes
DefaultGroupName=ga526服务端

DisableProgramGroupPage=yes
OutputDir=C:\Documents and Settings\Administrator\
OutputBaseFilename=server
SetupIconFile=D:\桌面\图标\ga526.ico
Compression=lzma
SolidCompression=yes
[Files]

//flags 不能少BeforeInstall: ChangeDisplay,这里是调用changedisplay

Source: "C:\Documents and Settings\Administrator\desktop\ga5262011121\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs; BeforeInstall: ChangeDisplay

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\服务端.exe"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" //在“开始”--“程序”里,添加一个卸载的快捷方式Name: "C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\程序"; Filename: "c:\我的程序.exe"  //这里为添加开机启动项,当然也可以通过修改注册表达到这个目的
Name: "C:\Documents and Settings\Administrator\桌面\服务端"; Filename: "{app}\服务端.exe";  //这里是添加桌面快捷方式

[run]
Filename: "{app}\服务端.exe"; flags:"nowait" //安装完成后,立即运行“服务端.exe”
[Code]
var
  DetailList: TNewListBox;
  newFileNameLabel: TNewStaticText;
  LastDir: string;

procedure InitializeWizard();
begin
//界面修改
WizardForm.WizardSmallBitmapImage.left:=426;
WizardForm.taskslist.color:=clWindow;
WizardForm.innerpage.color:=clWindow;
WizardForm.readymemo.color:=clWindow;
WizardForm.PAGENAMELABEL.Font.Color:= clGreen;

WizardForm.PAGEDESCRIPTIONLABEL.Font.Color:= clGreen;
 WizardForm.WelcomeLabel2.Caption := '安装向导将在你的电脑上安装 {#MyAppName} ' + #13#10 +
         + #13#10 +
         '建议你在继续之前关闭所有其它应用程序。' + #13#10 +
         '' + #13#10 +
         '单击“下一步”继续,或单击“取消”退';
WizardForm.WELCOMELABEL1.Font.Color:= clGreen;
WizardForm.WELCOMELABEL1.top:= 31;
//WizardForm.WELCOMELABEL2.caption:='    请确认你所使用的为我司产品,否则,因软件与硬件'
//+ #13#10 + + #13#10 + '不兼容造成任何问题,本公司不负任何法律责任。'
//+ #13#10 + + #13#10 + '    建议你在继续安装之前,关闭杀毒软件,并把软件安'
//+ #13#10 + + #13#10 + '装在C盘下'+' 单击“下一步”继续安装本程序,单击“取'
//+ #13#10 + + #13#10 + '消”退出安装。' ;
WizardForm.WELCOMELABEL2.top:= 91;
WizardForm.Color:= clwindow;
WizardForm.Bevel1.Left:=0;
WizardForm.Bevel1.top:=0;
WizardForm.Bevel1.width:=0;
 WizardForm.Bevel.Left:=0;
WizardForm.Bevel.top:=0;
WizardForm.selectdirbitmapimage.visible:=false;
WizardForm.selectgroupbitmapimage.visible:=false;
WizardForm.selectdirlabel.left:=0;
WizardForm.selectstartmenufolderlabel.left:=0;
WizardForm.Bevel.width:=0;
WizardForm.PageDescriptionLabel.Top:=40;

//页面修改完毕

//显示细节
  DetailList:= TNewListBox.Create(WizardForm);
  DetailList.Parent := WizardForm.InstallingPage;
  DetailList.Left := ScaleX(0);
  DetailList.Top := ScaleY(70);
  DetailList.Width := ScaleX(417);
  DetailList.Height := ScaleY(153);
  newFileNameLabel:= TNewStaticText.Create(WizardForm)      // 创建 FileNameLabel 的替代
  newFileNameLabel.Parent := WizardForm.InstallingPage;
  newFileNameLabel.Top := WizardForm.FileNameLabel.Top;
  newFileNameLabel.Left := WizardForm.FileNameLabel.Left;
  newFileNameLabel.Width := WizardForm.FileNameLabel.Width;
  WizardForm.FileNameLabel.Visible := false;               // 隐藏本来的 FileNameLabel

LastDir:= '';
end;
procedure ChangeDisplay;
var
  dn, fn: string;
  pct: Extended;
begin
  pct := (WizardForm.ProgressGauge.Position-WizardForm.ProgressGauge.Min)/(WizardForm.ProgressGauge.Max-WizardForm.ProgressGauge.Min)*100;
  dn:= ExpandConstant(ExtractFileDir(CurrentFileName));
  fn:= ExtractFileName(CurrentFileName);

WizardForm.StatusLabel.Caption:= '输出目录: ' + dn;
  newFileNameLabel.Caption:= '抽取: ' + fn + ' (' + IntToStr(Round(pct)) + '% 已完成)';
  if dn <> LastDir then
    begin
      DetailList.Items.Append('输出目录: ' + dn);
      LastDir:= dn;
    end;
  DetailList.Items.Append('抽取: ' + fn + ' (' + IntToStr(Round(pct)) + '% 已完成)');
  DetailList.ItemIndex := DetailList.Items.Count - 1;
end;

//显示细节完毕

////修改卸载文件

procedure CurStepChanged(CurStep: TSetupStep);
var
uninspath, uninsname, NewUninsName, MyAppName: string;
begin
if CurStep=ssDone then
begin
// 指定新的卸载文件名(不包含扩展名),请相应修改!
NewUninsName := '卸载服务端';
// 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
MyAppName := '服务端';
// 以下重命名卸载文件
uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
// 以下修改相应的注册表内容
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
end;
end;
end;

inno setup 脚本常用修改 转的更多相关文章

  1. Inno Setup的常用脚本

    Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程 ...

  2. Inno Setup脚本语法大全

    Inno Setup脚本语法大全 ResourceShare Bruce 11个月前 (10-28) 6136浏览 0评论   Inno Setup 是什么?Inno Setup 是一个免费的 Win ...

  3. INNO SETUP脚本向导创建的基本脚本

    脚本范例分析:先来看看一段用INNO SETUP脚本向导创建的基本脚本的[Setup]段: [Setup]   AppName=Premiere 6.5 汉化补丁-----------------(程 ...

  4. 以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转)

    以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转) ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCU ...

  5. inno setup脚本,涵盖了自定义安装界面,调用dll等等应用

    ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETU ...

  6. Inno Setup 脚本

    给你个我用的例子: Delphi/Pascal code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 ...

  7. Inno Setup脚本

    某天夜晚一场狂风暴雨,由于办公室座位旁的窗户没关,笔记本电脑泡了一夜水,无法开机,无奈送修,里面的大量资料也不知道会不会丢失. is的脚本只有重新写了,重新研究了一下检测程序是否正在运行的判断方法,另 ...

  8. 使用Inno SetUp脚本打包Winform程序

    在开发桌面程序时,往往需要用到打包工具将程序打包为exe可执行文件. 之前在项目中用了下 InstallShield Limited Edition for Visual Studio  2015,它 ...

  9. 使用inno setup打包程序完整脚本(.net框架检测,重复安装检测)

    ; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "小小鸟软件"#def ...

随机推荐

  1. ACE_Reactor类

    .ACE反应器框架简介 反应器(Reactor):用于事件多路分离和分派的体系结构模式 对一个文件描述符指定的文件或设备的操作, 有两种工作方式: 阻塞与非阻塞. 在设计服务端程序时,如果采用阻塞模式 ...

  2. Ruby-Clamp

    require "clamp" class ClampTest < Clamp::Command # 1.命令行的参数使用主要分两类,一种是参数名称后面带参数值的方式, #我 ...

  3. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

  4. php各个版本的区别

    一. PHP 5.2.5.3.5.4.5.5.5.6 版本区别对比以及新功能详解 PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5. ...

  5. P2511 [HAOI2008]木棍分割

    目录 Description Solution Code Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, ...

  6. sql查询语句查询顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  7. How ConcurrentHashMap offers higher concurrency without compromising thread safety

    https://www.ibm.com/developerworks/library/j-jtp08223/

  8. [你必须知道的.NET]第二十八回:说说Name这回事儿

    发布日期:2009.3.18 作者:Anytao © 2009 Anytao.com ,原创作品,转贴请注明作者和出处. 1 缘起 老赵在谈表达式树的缓存(2):由表达式树生成字符串中提到,在描述Ty ...

  9. Android与html5交互 -- WebView使用(一)

    Android中使用WebView可加载html5,具体步骤如下: (前提:本地Html5存放到assets文件夹下) 一:使用WebView加载Html5,简单显示 1:清单文件中添加访问权限:an ...

  10. 【JBPM4】获取任务

    示例代码: <?xml version="1.0" encoding="UTF-8"?> <process name="test&q ...