用inno setup制作安装程序

原创 2015年07月10日 18:54:49

用inno setup 5.5.5汉化版制作“我的应用”
代码如下:

补丁日志:
20150724:

1).修复:在卸载面板中,显示卸载图标.(2015-07-21下载地址的代码上是bug,请留意)
解决方法:
[Setup]
UninstallDisplayIcon={app}\install.ico
[Files]
Source: “install.ico”; DestDir: “{app}”; Flags: ignoreversion

2).修复:unins000.exe 显示乱码
解决方法:安装inno setup 5.5.5时,选择unicode格式进行安装

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

#define MyAppName "我的应用"
#define MyAppVersion "1.1.2"
#define MyAppPublisher "google公司"
#define MyAppURL "http://www.google.com/"
#define MyAppExeName "gloudarena.exe"

[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{B82CFEB7-9B37-4CCE-A253-580F33E982F0}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}/Gloud/Arena
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
LicenseFile=C:\Users\MyPC\Desktop\gameSetup\cn.gloud.arena-20150706-gloud\README.txt
OutputBaseFilename=我的应用
SetupIconFile=C:\Users\MyPC\Desktop\gameSetup\install.ico
Compression=lzma
SolidCompression=yes
;以管理员权限开启
PrivilegesRequired=admin
ChangesAssociations=yes
Uninstallable=yes
UninstallDisplayName=卸载 {#MyAppName} 
UninstallDisplayIcon={app}\install.ico 
WizardImageFile=WizModernImage.bmp
WizardSmallImageFile=WizModernSmallImage.bmp
VersionInfoVersion={#MyAppVersion} 


[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

;创建桌面图标
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone; 

[Files]
Source: "C:\Users\MyPC\Desktop\gameSetup\cn.gloud.arena-20150706-gloud\gloudarena.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\MyPC\Desktop\gameSetup\cn.gloud.arena-20150706-gloud\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "install.ico"; DestDir: "{app}"; Flags: ignoreversion 
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

;//桌面图标快捷方式读取.exe
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; WorkingDir: "{app}";     

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent




;//注意!代码必须使用[code]段才能够正常运行 
[code] 
//删除所有配置文件以达到干净卸载的目的 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

begin

  if CurUninstallStep = usUninstall then

  //if MsgBox('您是否要删除用户配置信息?', mbConfirmation, MB_YESNO) = IDYES then

  //删除 {app} 文件夹及其中所有文件

  DelTree(ExpandConstant('{app}'), True, True, True);

end;

//把安装位置在安装的时候写进注册表中,更新安装的时候你读取注册表中已保存的路径
procedure InitializeWizard();
var ResultStr: String;
    ResultCode: Integer;
begin
  if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion', 'UninstallString', ResultStr) then
  begin
    ResultStr := RemoveQuotes(ResultStr);
    Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
  end;
end;


//检查版本号
function GetInstalledVersion(): String;
  var
  InstalledVersion: String;
  begin
  InstalledVersion :='';
  RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion', 'Installed version', InstalledVersion);
  Result := InstalledVersion;
end

;//安装、卸载前检查关闭**进程  
var 
HasRun:HWND;

function InitializeSetup():Boolean;
begin


  //检测运行应用程序
  Result := true;
  HasRun := FindWindowByWindowName('我的应用');
  while HasRun<>0 do
  begin
    if MsgBox('安装程序检测到你的应用程序正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
    begin
      Result := false;
      HasRun := 0;
    end
    else
    begin
      Result := true;
      HasRun := FindWindowByWindowName('Gloud Arena');
    end;
  end;


end;

function InitializeUninstall(): Boolean;
begin
  HasRun := FindWindowByWindowName('我的应用');
  if HasRun<>0 then
  begin
    MsgBox('卸载程序检测到你的应用程序正在运行。' #13#13 '请先退出你的应用程序,然后再进行卸载!', mbError, MB_OK);
    Result := false;
  end
  else
    Result := true;
end;


[/code]

—————————————代码结束———————————————-

安装前关闭程序代码:

function InitializeSetup():Boolean;
//进程ID
var appWnd: HWND;
begin

  Result := true;
  //Log('Checking If Running...');
  //根据窗体名字获取进程ID
  appWnd := FindWindowByWindowName('我的应用');
  if (appWnd <> 0) then
     //进程存在,关闭
     begin
        //Log('Is Runing...');
        //给进程发送关闭消息
        PostMessage(appWnd, 18, 0, 0);       // quit
     end else
     //进程不存在 
     begin 
        //Log('Not Runing...');
     end;


end;

2015-07-21上传360签名的安装包和程序:
下载地址

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SET...
  • Augusdi
  • Augusdi
  • 2013年02月02日 15:15
  • 5159

如何在GPT格式下创建EFI和MSR分区(安装WIN10/WIN8.1)

---> 下载老毛桃 ---> 制作USB启动盘 ---> 重启电脑 ---> 狂按esc(华硕笔记本USB启动按esc,设置boot按f2) 结果出现一个 UEFI:后面是U盘名字,然后回车,咦~ ...
  • gao_chun
  • gao_chun
  • 2016年01月04日 18:04
  • 62667

inno setup软件--教你如何制作一个漂亮的安装程序

当我们制作好一个课件或程序的时候就会想给它做漂亮的安装程序,特别是用AUTHORWARE制作的课件,由于必须把XTRAS目录下相关的文件与可执行文件一起提供,这时我们就需要给课件制作安装程序。而且制作...

利用Inno Setup制作补丁安装程序

今天需要给之前打包的一个软件制作补丁的安装程序,因为当时并没有考虑到这个小软件会做补丁安装程序,所以当时并没有在注册表中记录这个软件的安装位置,不过幸好在环境变量中记录了与这个软件一起使用的数据库的位...

Inno Setup 5制作安装程序

1.想到的时候填写安装目录 C:\Program Files (x86)\云曜互联 最后效果: C:\Program Files (x86)\云曜互联\后宫OL   2.打开网页: [CO...

inno setup软件--教你如何制作一个漂亮的安装程序

当我们制作好一个课件或程序的时候就会想给它做漂亮的安装程序,特别是用AUTHORWARE制作的课件,由于必须把XTRAS目录下相关的文件与可执行文件一起提供,这时我们就需要给课件制作安装程序。而且制作...

Java桌面应用安装部署、安装程序制作(exe4j + Inno Setup)——之三:使用exe4j生成EXE可执行文件

第二步:使用exe4j生成EXE可执行文件         注:我使用的exe4j版本是4.4.1,不同版本可能稍有差异。         因为希望软件在运行的时候是使用我们提供的JRE,而不是操...

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

在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤 ISSkin是Code jock 公司出品的Inno Setup 皮肤插件,用于为Inno制作的安装程序提供皮肤功能。 ...

Inno Setup入门(十四)——替换安装程序和卸载程序的图标

通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。       首先生成的安装文件图...
  • mail_cm
  • mail_cm
  • 2013年01月05日 15:12
  • 618

Inno Setup入门(十四)——替换安装程序和卸载程序的图标

通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。       首先生成的安装文件图标。这个比较...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用inno setup制作安装程序
举报原因:
原因补充:

(最多只允许输入30个字)