首页 > 其他分享 >Inno Setup6.2.0汉化版软件及生成安装包脚本(二)

Inno Setup6.2.0汉化版软件及生成安装包脚本(二)

时间:2023-12-01 14:55:43浏览次数:43  
标签:string Setup6.2 app 汉化版 Flags MyAppExeName HKA 安装包 Software

个人研究,为了记录下打包脚本,大家也可以安装打包脚本向导一步一步生成。

下面是我打包的脚本,其中包含了安装过程中执行批处理文件,是为了安装API服务,可以参考下:

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

#define MyAppName "客户端名称"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "公司名称"
#define MyAppURL "公司网址"
#define MyAppExeName "Client.exe"
#define MyAppAssocName MyAppName + " 文件"
#define MyAppAssocExt ".exe"
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt

[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (若要生成新的 GUID,可在菜单中点击 "工具|生成 GUID"。)
AppId={{08FBA954-A306-4782-8C02-05F3DFE01772}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
ChangesAssociations=yes
DisableProgramGroupPage=yes
InfoBeforeFile=E:\TMT\安装说明.txt
; 以下行取消注释,以在非管理安装模式下运行(仅为当前用户安装)。
;PrivilegesRequired=lowest
OutputBaseFilename=Setup
SetupIconFile=E:\TMT\viso.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
ArchitecturesInstallIn64BitMode=x64

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

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Types]
Name: win64; Description: Window 默认环境组件安装
Name: custom; Description:  自定义环境组件安装; Flags: iscustom

//组件列表选择项
[Components]
Name: BYCJ; Description: HeidiSQL; Types: win64 custom

[Files]
Source: "E:\Client\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\Client\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "E:\Client\mariadb.msi"; DestDir: "{app}"; Flags: ignoreversion  ; Components: BYCJ; AfterInstall: BYCJ
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

[Registry]
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".exe"; ValueData: ""
Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\YourClient2023"; Flags: uninsdeletekeyifempty; ValueType: string; ValueName: "Version"; ValueData: "{#MyAppVersion}"
Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\YourClient2023"; Flags: uninsdeletekeyifempty; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

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

[UninstallRun]
// 卸载应用时执行以下文件
Filename: "{app}\Server\stop.bat"; Flags: runhidden

  [Code]
  //安装BYCJ
    procedure BYCJ;
    var
    RetCode: integer;
    begin
    ShellExec('open', ExpandConstant('{app}\mariadb.msi'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, RetCode);
    if RetCode <> 0 then
    MsgBox(SysErrorMessage(RetCode), mbInformation, MB_OK);
    end;

  procedure UpdateRegistryValue();
var
  RegKey: string;
  RegValue: string;
begin
  // 尝试读取注册表值
  RegKey := 'Software\YourClient2023';
  if RegQueryStringValue(HKA, RegKey, 'Version', RegValue) then
  begin
    // 如果注册表值存在且不等于 "Updated Value",则更新它
    if RegValue <> '{#MyAppVersion}' then
    begin
      RegWriteStringValue(HKA, RegKey, 'Version', '{#MyAppVersion}');
      RegWriteStringValue(HKA, RegKey, 'InstallPath', '{app}');
    end;
  end
  else
  begin
    // 如果注册表值不存在,则创建它
    RegWriteStringValue(HKA, RegKey, 'Version', '{#MyAppVersion}');
    RegWriteStringValue(HKA, RegKey, 'InstallPath', '{app}');
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  // 在安装完成后更新注册表值
  if CurStep = ssDone then
  begin
    UpdateRegistryValue();
  end;
end;

 

标签:string,Setup6.2,app,汉化版,Flags,MyAppExeName,HKA,安装包,Software
From: https://www.cnblogs.com/js-jiangchenyang/p/17869697.html

相关文章

  • Inno Setup6.2.0汉化版软件打包工具(1)
    InnoSetup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后......
  • SecureCRT汉化版安装、使用以及常见问题
    SecureCRT8.5是一款支持SSH(SSH1和SSH2)的终端仿真程序,适用于Windows、MAC和Linux的SecureCRT的客户端程序。简单来说,就是可以在Windows环境下登录UNIX或Linux服务器主机的软件。通过高级会话管理提高了工作效率,并提供了一系列节省时间和简化重复性任务的方法,为组织中的每个人......
  • Linux下载rmp安装包离线安装
    背景:生产环境的Linux为离线状态,不能方便的下载安装包。前置条件:1.两台环境基本相同的Linxu系统,其中一台可以正常访问公网。2.可以将下载好的安装包拷贝至离线环境。yum命令下载rpm包:sudoyum-y--downloadonly--downloaddir=/home/ToolsXXXyum:这是YellowdogUpdater,......
  • Python知识补充pip 安装包的工具
    Python知识补充pip安装包的工具(1)安装第三方模块pipinstall模块名pipinsyall模块名==#查看我当前模块都有哪些版本pipinsyall模块名==版本号#安装指定版本的模块(2)卸载模块pipuninstall模块名(3)临时换源pipuninstall模块名清华大学: https://pypi.tuna.......
  • 使用 NSIS 将 Python 程序制作成 Windows 环境下的安装程序(安装包)
    转载于:https://www.freesion.com/article/1583987771/#1_NSIS__6NSIS官网下载:https://nsis.sourceforge.io/Main_Page首先,需要使用PythonPyInstaller模块将Python程序制作成可直接运行的EXE程序。(可以不要-F参数)将我们所需的、打包好的windowdemo目录(文件夹)压索成.zip......
  • Ubuntu20.04安装Docker及汉化版管理面板Portainer
    一、安装Docker 1、由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:sudoapt-getremovedockerdocker-enginedocker-cedocker.io 2、更新apt包索引:sudoapt-getupdate 3、安装以下包以使apt可以通过HTTPS使用存储库(repository):sudoapt-getinst......
  • LNMP一键安装包安装的mysql远程连接不上的问题
    正常的做法: 以root用户登录mysql:grant all privileges on*.* to创建的用户名@"%"identified by "密码";flushprivileges;例如:mysql>grant all privileges on*.* tozhangsan@"%"identified by "123456";......
  • 使用reposync工具将yum安装包保存到本地的方法
    使用reposync工具将yum安装包保存到本地的方法版权声明:原创作品,谢绝转载!否则将追究法律责任。—————作者:kirin1、修改yum配置#修改配置文件[root@kirin365data]#vim/etc/yum.confcachedir=/usr/local/cache#包保存的路径keepcache=1#1为保存0为不保存2、reposy......
  • 【QT最新2023年安装包下载及安装教程(超详细)】
    1、打开清华大学镜像网站:https://mirrors.tuna.tsinghua.edu.cn/qt/或者打开qt官网下载:http://www.qt.io/download不建议使用官网下载安装包,网速不稳定,下载较慢,此处讲解镜像网站下载步骤  2、下载完成后找到安装包双击打开--进入安装“登录”界面:输入邮箱和密码进行登录,没......
  • mac 下使用 brew 安装包报错 error: Cannot install under Rosetta 2 in ARM default
    mac下使用brew安装包报错error:CannotinstallunderRosetta2inARMdefaultprefix(/opt/homebrew)!TorerununderARMuse:arch-arm64brewinstall...Toinstallunderx86_64,installHomebrewinto/usr/local.解决办法:arch-arm64brewinstallxxx......