欢迎光临
我们一直在努力

分享个INNO打包Windows应用程序完整实例脚本

购买童装可电话联系:13783019327 同微信 巩义本地可去实体店选购。

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


  1. ; 脚本由 Inno Setup 脚本向导 生成!  

  2. ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!  

  3.   

  4. #define MyAppName "××××"  

  5. #define MyAppVersion "2.3.29.15"  

  6. #define MyAppPublisher "有限公司"  

  7. #define MyAppURL "http://www.******.com/"  

  8. #define MyAppExeName "******.exe"  

  9. ;#define MyProgramsMutexName "C0BD666C-45AB-48D2-AAA8-C535E624134C"  

  10. [Setup]  

  11. ; 注: AppId的值为单独标识该应用程序。  

  12. ; 不要为其他安装程序使用相同的AppId值。  

  13. ; (生成新的GUID,点击 工具|在IDE中生成GUID。)  

  14. AppId={{C0BD666C-45AB-48D2-AAA8-C535E624134C}  

  15. ;AppMutex={#MyProgramsMutexName}  

  16. AppName={#MyAppName}  

  17. AppVersion={#MyAppVersion}  

  18. AppVerName={#MyAppName} {#MyAppVersion}  

  19. VersionInfoProductVersion={#MyAppVersion}  

  20. VersionInfoProductTextVersion={#MyAppVersion}  

  21. VersionInfoVersion={#MyAppVersion}  

  22. VersionInfoCompany={#MyAppPublisher}  

  23. VersionInfoCopyright={#MyAppPublisher}{#'版权所有'}  

  24. AppPublisher={#MyAppPublisher}  

  25. AppPublisherURL={#MyAppURL}  

  26. AppSupportURL={#MyAppURL}  

  27. AppUpdatesURL={#MyAppURL}  

  28. DefaultDirName={pf}\{#MyAppName}  

  29. DefaultGroupName={#MyAppName}  

  30.   

  31. OutputDir=C:\Users\Jelin\Desktop\InnoOut  

  32. OutputBaseFilename=MySetup{#MyAppVersion}  

  33. SetupIconFile=******\res\*****.ico  

  34. Compression=lzma  

  35. SolidCompression=yes  

  36.   

  37. [Languages]  

  38. Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"  

  39.   

  40. [Tasks]  

  41. Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1  

  42. Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked  

  43.   

  44. [Files]  

  45. 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>  

  46. Source: "E:\*****\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs  

  47. ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”  

  48.   

  49. [Icons]  

  50. Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"  

  51. Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"  

  52. Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"  

  53. Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon  

  54. Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon  

  55.   

  56. [Run]  

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

  58.   

  59. [UninstallRun]  

  60. Filename: "{app}\******.exe"; Parameters: "/uninstall"  

  61.   

  62. ;注册表启动项   

  63. [Registry]   

  64. Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "testrun"; ValueData: "{app}\{#MyAppExeName}"   

  65. Root: HKLM; Subkey: "Software\**********"; ValueType: string; ValueName: "version"; ValueData: "{#MyAppVersion}"  

  66. 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>  

  67.   

  68. ;安装时判断客户端是否正在运行      

  69. [Code]  

  70.    

  71. function InitializeSetup(): Boolean;    

  72. var   

  73.   IsRunning: Integer;  

  74. begin    

  75.      

  76. Result :=true//安装程序继续    

  77.       

  78. IsRunning:=FindWindowByClassName('UIMainFrame');  ;检查程序是否正在运行  

  79.      

  80. while IsRunning<>0 do    

  81.      

  82. begin    

  83.      

  84. if Msgbox('安装程序检测到********正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then    

  85.      

  86. begin    

  87.      

  88. Result :=false//安装程序退出    

  89.      

  90. IsRunning :=0;    

  91.      

  92. end else begin    

  93.      

  94. Result :=true//安装程序继续    

  95.      

  96. IsRunning:=FindWindowByClassName('UIMainFrame');    

  97.      

  98. end;    

  99.      

  100. end;    

  101.      

  102. end;  

  103.   

  104.   

  105. function InitializeUninstall(): boolean;  

  106. var  

  107. IsRunning: Integer;  

  108. begin  

  109.   Result:= true;  

  110.   IsRunning:= FindWindowByClassName('UIMainFrame');    

  111.   begin  

  112.     if IsRunning<>0 then  

  113.     begin  

  114.       MsgBox('******正在运行,请先关闭它!', mbConfirmation, MB_OK);  

  115.       Result:= false;  

  116.     end  

  117.     else  

  118.       begin  

  119.       Result:= true  

  120.   

  121.       end;  

  122.   end;  

  123. end; 

未经允许不得转载:随缘小居 » 分享个INNO打包Windows应用程序完整实例脚本
购买童装可电话联系:13783019327 同微信 巩义本地可去实体店选购。
5

评论 抢沙发

评论前必须登录!

 

不跟随,有视角焦点的博客

联系我们联系我们