inno setup软件脚本说明

深碍√TFBOYSˉ_ 2021-06-24 13:58 508阅读 0赞
  1. ; 脚本由 Inno Setup 脚本向导 生成!
  2. ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
  3. #define MyAppName "串口网络调试助手"
  4. #define MyAppVersion "1.3"
  5. #define MyAppPublisher "智果芯电子"
  6. #define MyAppURL "https://smartsensors.weebly.com/"
  7. #define MyAppExeName "serial.exe"
  8. [Setup]
  9. ; 注: AppId的值为单独标识该应用程序。
  10. ; 不要为其他安装程序使用相同的AppId值。
  11. ; (若要生成新的 GUID,可在菜单中点击 "工具|生成 GUID"。)
  12. AppId={ { CE0CC45F-9B5A-4D91-AD7B-FF95EF4B6CBE}
  13. ;应用程序名称
  14. AppName={ #MyAppName}
  15. ;应用程序版本号
  16. AppVersion={ #MyAppVersion}
  17. ;AppVerName={ #MyAppName} { #MyAppVersion}
  18. AppPublisher={ #MyAppPublisher}
  19. AppPublisherURL={ #MyAppURL}
  20. AppSupportURL={ #MyAppURL}
  21. AppUpdatesURL={ #MyAppURL}
  22. ;默认安装文件夹名
  23. DefaultDirName={ autopf}\{ #MyAppName}
  24. DisableProgramGroupPage=yes
  25. InfoBeforeFile=D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\welcom.txt
  26. ;InfoAfterFile=D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\finished.txt
  27. ; 以下行取消注释,以在非管理安装模式下运行(仅为当前用户安装)。
  28. ;PrivilegesRequired=lowest
  29. OutputDir=D:\Desktop
  30. OutputBaseFilename=serialsetup_1.3
  31. ;exe的图标的路径
  32. SetupIconFile=D:\Desktop\QT\serial-v1.3-3.16\system.ico
  33. ;使用压缩类算法lzma
  34. Compression=lzma
  35. ;固定压缩格式
  36. SolidCompression=yes
  37. WizardStyle=modern
  38. ;164x314
  39. ;55x58
  40. ;必须是bmp格式的图片,路径为绝对路径
  41. WizardImageFile=D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\big.bmp
  42. WizardSmallImageFile=D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\small.bmp
  43. ;设置安装界面的语言
  44. [Languages]
  45. ;中文语言
  46. Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
  47. ;英文语言
  48. Name: "english"; MessagesFile: "compiler:English.isl"
  49. [Tasks]
  50. ;Tasks: desktopicon 任务:生成快捷方式
  51. Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
  52. [Files]
  53. ;生成的快捷方式所指的原执行文件
  54. Source: "D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\serial.exe"; DestDir: "{app}"; Flags: ignoreversion
  55. ;打包的目录
  56. Source: "D:\Desktop\QT\build-serial-Desktop_Qt_5_13_2_MinGW_64_bit-Release\release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
  57. ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion
  58. [Icons]
  59. ;生成开始菜单可执行程序map.exe是你目录下的可执行文件 WorkingDir: { app}” WorkingDir后面加{ app} app的意思是随安装目录生成
  60. Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
  61. ;生成开始菜单卸载
  62. Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}";WorkingDir:"{app}"
  63. ;Tasks: desktopicon 上面任务中的,生成快捷方式
  64. Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
  65. [Run]
  66. Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
  67. ; Code下面代码是自己添加的,不是系统西东生成的
  68. [Code]
  69. var
  70. ErrorCode: Integer;
  71. IsRunning: Integer;
  72. //判定程序已经被安装过而不需要重复安装,判断当前安装路径下已经有要安装的exe
  73. // 安装时判断客户端是否正在运行
  74. function InitializeSetup(): Boolean;
  75. begin
  76. Result :=true; //安装程序继续
  77. if FileExists(ExpandConstant('{pf}\test\test.exe')) then
  78. begin
  79. MsgBox('程序已经安装在你的系统中了!', mbInformation, MB_OK );
  80. Result := false;
  81. end;
  82. IsRunning:=FindWindowByWindowName('test');
  83. while IsRunning<>0 do
  84. begin
  85. if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
  86. begin
  87. Result :=false; //安装程序退出
  88. IsRunning :=0;
  89. end else begin
  90. Result :=true; //安装程序继续
  91. IsRunning:=FindWindowByWindowName('test');
  92. end;
  93. end;
  94. end;
  95. // 卸载时判断客户端是否正在运行
  96. function InitializeUninstall(): Boolean;
  97. begin
  98. Result :=true; //安装程序继续
  99. IsRunning:=FindWindowByWindowName('test');
  100. while IsRunning<>0 do
  101. begin
  102. if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
  103. begin
  104. Result :=false; //安装程序退出
  105. IsRunning :=0;
  106. end else begin
  107. Result :=true; //安装程序继续
  108. IsRunning:=FindWindowByWindowName('test');
  109. end;
  110. end;
  111. end;
  112. procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
  113. begin
  114. case CurUninstallStep of
  115. usUninstall:
  116. begin // 开始卸载
  117. end;
  118. usPostUninstall:
  119. begin // 卸载完成
  120. //MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);
  121. //插入代码执行卸载后的任务
  122. //ShellExec('open', 'http://www.baidu.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
  123. end;
  124. end;
  125. end;

发表评论

表情:
评论列表 (有 0 条评论,508人围观)

还没有评论,来说两句吧...

相关阅读