最近手贱,把以前写的一个完整的INNO打包脚本给删了,于是又得到处找资料学习。现在分享一个完整的脚本代码,以后就不会找不到了。脚本为完整diamante,包括了这些基本的功能:写注册表、检测程序是否正在运行、调用exe、配置生成文件相关属性等。

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!#define MyAppName "××××"
#define MyAppVersion "2.3.29.15"
#define MyAppPublisher "有限公司"
#define MyAppURL "http://www.******.com/"
#define MyAppExeName "******.exe"
;#define MyProgramsMutexName "C0BD666C-45AB-48D2-AAA8-C535E624134C"
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{C0BD666C-45AB-48D2-AAA8-C535E624134C}
;AppMutex={#MyProgramsMutexName}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
VersionInfoProductVersion={#MyAppVersion}
VersionInfoProductTextVersion={#MyAppVersion}
VersionInfoVersion={#MyAppVersion}
VersionInfoCompany={#MyAppPublisher}
VersionInfoCopyright={#MyAppPublisher}{#'版权所有'}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}OutputDir=C:\Users\Jelin\Desktop\InnoOut
OutputBaseFilename=MySetup{#MyAppVersion}
SetupIconFile=******\res\*****.ico
Compression=lzma
SolidCompression=yes[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked[Files]
Source: "E:\<span style="font-family: Arial, Helvetica, sans-serif;">******</span><span style="font-family: Arial, Helvetica, sans-serif;">\Release\****.exe"; DestDir: "{app}"; Flags: ignoreversion</span>
Source: "E:\*****\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent[UninstallRun]
Filename: "{app}\******.exe"; Parameters: "/uninstall";注册表启动项
[Registry]
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "testrun"; ValueData: "{app}\{#MyAppExeName}"
Root: HKLM; Subkey: "Software\**********"; ValueType: string; ValueName: "version"; ValueData: "{#MyAppVersion}"
Root: HKLM; Subkey: "Software\<span style="font-family: Arial, Helvetica, sans-serif;">**********</span><span style="font-family: Arial, Helvetica, sans-serif;">"; ValueType: string; ValueName: "path"; ValueData: "{app}"</span>;安装时判断客户端是否正在运行
[Code]function InitializeSetup(): Boolean;
var IsRunning: Integer;
begin  Result :=true; //安装程序继续  IsRunning:=FindWindowByClassName('UIMainFrame');  ;检查程序是否正在运行while IsRunning<>0 do  begin  if Msgbox('安装程序检测到********正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then  begin  Result :=false; //安装程序退出  IsRunning :=0;  end else begin  Result :=true; //安装程序继续  IsRunning:=FindWindowByClassName('UIMainFrame');  end;  end;  end;function InitializeUninstall(): boolean;
var
IsRunning: Integer;
beginResult:= true;IsRunning:= FindWindowByClassName('UIMainFrame');  beginif IsRunning<>0 thenbeginMsgBox('******正在运行,请先关闭它!', mbConfirmation, MB_OK);Result:= false;endelsebeginResult:= trueend;end;
end;

转载于:https://www.cnblogs.com/Joetao/articles/6115730.html

分享个INNO打包Windows应用程序完整实例脚本(转载)相关推荐

  1. java 打包工具_Java打包Windows安装程序

    目前对于开发Windows桌面程序而言,Java Swing并不是最好的选择,但是对于Java/Android程序员来说,Swing是最快上手和最容易熟悉的语言,和Android类似,Swing也提供 ...

  2. 本人亲测-inno setup打包EXE(较完整实例)

    ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING ...

  3. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  4. 再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行

    再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行 废话少说,show my code [code] //安装和卸载时检查程序是否运行,拷贝代码修改AppName和AppId functio ...

  5. h5是可以一键打包小程序的_H5手机网站封装打包微信小程序并实现分享及微信支付...

    手机网站打包小程序教程,生成小程序,网页版小程序  打包微信小程序,H5封装成微信小程序. 微信小程序开发一般分为2种方式,一种就是原生开发小程序,一种是将手机网站打包成小程序. 原生开发小程序成本较 ...

  6. windows froms 程序打包 (转载)

    今天研究了一下 windows froms程序的打包 运行环境:vs2010 英文版 .net framework 2.0 到网上搜索了几篇文章: 1: 手把手教你用C#打包应用程序(安装程 ...

  7. Windows游戏开发感想一个完整的Windows窗口程序

    现在的互联网行业从事Windows游戏开发的人实在是太少了.一是因为门槛较高,游戏行业本来就是互联网行业最尖端的领域,要想从事游戏开发,不仅要掌握一门过硬的语言,尤其是对C++的精通,还要对算法非常精 ...

  8. C# windows应用程序打包 (VS2010+SQL Server 2008)

    作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/37563661 开发环境:VS2010+SQL Server 2008 操作 ...

  9. Inno Setup制作应用程序安装包

    我最近写了一个MFC应用程序,想发给其他的小伙伴玩一玩,直接发了个exe文件过去,结果发现小伙伴那边打不开.原来这个exe文件虽然是MFC静态编译的,但是还依赖了其他几个.dll文件,需要把这几个dl ...

最新文章

  1. 边界框的回归策略搞不懂?算法太多分不清?看这篇就够了
  2. ROS多根adsl叠加负载均衡PCC的做法
  3. mysql存储过程1267_mysql存储过程一例
  4. 查看修改MySQL字符集
  5. vue可以直接进行运算么_Vue实现手机计算器
  6. qt 打开html文件怎么打开文件夹路径,QT打开网页
  7. Nginx Upload Module 上传模块
  8. 【渝粤题库】陕西师范大学151113 财经法规与职业道德
  9. make: texi2dvi command not found 解决方法
  10. 机器人学: 建模 规划与控制(英文原版)_伦敦大学国王学院机器人学理学硕士研究生offer一枚...
  11. 专业的人做专业的事 VxRail助中通业务创新驶上“快车道”
  12. 捏脸代码大全v1.0hp精英
  13. 解线性方程组迭代法之Guass-Seidel迭代法及其算法实现
  14. VS2008的DDK环境配置DDK下载
  15. docker修改系统时间总结
  16. SQL语句查询不同年龄段人数
  17. macOS--使用Boot Camp安装双系统后win10下罗技鼠标蓝牙连接延迟(卡顿、不跟手)的解决办法
  18. 制作一个html文件 效果如下图,网页制作基础知识-习题课件.ppt
  19. 独家|IBM跨越里程碑,量子芯片弛豫时间实现量级优势抵达毫秒时代
  20. 【深度相机系列六】深度相机哪家强?附详细参数对比清单

热门文章

  1. Netty方法误解ChannelHandlerContext.writeAndFlush(Object msg)
  2. 对pthread_cond_wait()函数的理解
  3. iOS开发 小知识点
  4. Access常用类型及查询语法 [Access]
  5. USB接口直接焊线的顺序记录
  6. healthd: battery l=1 v=0 t=27.0 h=2 st=1 chg=a 注释方法
  7. s5pv210 音频播放问题 MPlayer移植
  8. kibana数据可视化
  9. main函数执行前执行一个函数的写法
  10. ssm 异常捕获 统一处理_统一异常处理介绍及实战,看这篇就对了