Advertisement
videx

Inno Script: Update

Apr 18th, 2020
3,451
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define AppName "World of Tanks Blitz"
  2. #define MyAppName "World of Tanks Blitz Update"
  3. #define AppVer "6.9"
  4. #define AppVerUpd "6.10"
  5. #define OutName "NSU610"
  6. ;НЕ ЗАБЫТЬ!!! Отредактировать директиву секции InstallDelete
  7.  
  8. [Setup]
  9. AppName={#MyAppName}
  10. AppVerName={#MyAppName} {#AppVerUpd} by @vladi1603
  11. AppVersion={#AppVerUpd}
  12. AppId=WoTBlitz\vladi1603
  13. DefaultDirName={pf}\{#AppName}
  14. DefaultGroupName={#AppName}
  15. Compression=none
  16. OutputDir=C:\Users\vladi\Desktop
  17. OutputBaseFilename={#OutName}
  18. InfoBeforeFile=readme.rtf
  19. SetupIconFile=game.ico
  20. WizardSmallImageFile=install.bmp
  21. DisableProgramGroupPage=yes
  22. DisableFinishedPage=True
  23. DisableReadyPage=True
  24.  
  25. [Languages]
  26. ;Язык по умолчанию интерфейса установщика
  27. Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
  28.  
  29. [Icons]
  30. ;Создание ярлыка на рабочем столе после успешной установки приложения
  31. Name: "{commondesktop}\World of Tanks Blitz"; Filename: "{app}\wotblitz.exe"
  32.  
  33. [InstallDelete]
  34. ;Файлы\папки которые должны удалится при Установке приложения
  35. Type: filesandordirs; Name: "{app}\Skin Builder Projects"
  36.  
  37. [UninstallDelete]
  38. ;Файлы\папки которые должны удалится при Удалении приложения
  39. Type: filesandordirs; Name: "{userdocs}\DAVAProject"
  40.  
  41. [Registry]
  42. ;Реестр дополняется параметр Version (с помощью константы olddata) и значением 1.1 и так далее
  43. Root: HKCU; Subkey: "Software\WoTBlitz"; ValueType: string; ValueName: "Version"; ValueData: "{#AppVerUpd}"; Flags: preservestringtype uninsdeletekey
  44.  
  45. [Files]
  46. ;Файлы приложения, установочный файл и вся его директория
  47. Source: "C:\WoTBlitz\update\wotblitz.exe"; DestDir: "{app}"; Flags: ignoreversion
  48. Source: "C:\WoTBlitz\update\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
  49.  
  50. ;Файлы, Оформление окон
  51. Source: "VclStylesinno.dll"; DestDir: {app}; Flags: dontcopy
  52. Source: "SmokeyQuartzKamri.vsf"; DestDir: {app}; Flags: dontcopy
  53.  
  54. ;Файлы, Splash
  55. Source: "isgsg.dll"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy nocompression
  56. Source: "Splash.png"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy nocompression
  57.  
  58. [Code]
  59. //Процедура, Оформление окон
  60. procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
  61. procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
  62.  
  63. //Процедура, Splash
  64. procedure ShowSplashScreen(p1:HWND;p2:AnsiString;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer);
  65. external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
  66.  
  67. //Функция, Оформление окон и Обновление
  68. function InitializeSetup: Boolean;
  69. var
  70.   ResultStr: string;
  71. begin
  72.   Result := False;
  73.   ExtractTemporaryFile('SmokeyQuartzKamri.vsf');
  74.   LoadVCLStyle(ExpandConstant('{tmp}\SmokeyQuartzKamri.vsf'));
  75.   if RegQueryStringValue(HKCU, 'Software\WoTBlitz', 'Version', ResultStr) and
  76.     (ResultStr = '{#AppVer}') then
  77.   begin
  78.     Result := MsgBox('Клиент игры найден. Продолжить установку?', mbConfirmation, MB_YESNO) = idYes;
  79.     if not Result then
  80.       MsgBox('Обновление клиента отменено.', mbInformation, MB_OK);
  81.   end else
  82.     MsgBox('Клиент игры не найден!' #13 'Или версия клиента не соответствует!' #13#13 'Обновление не может быть установлено!', mbConfirmation, MB_OK);
  83. end;
  84. //Читаем значение параметра Version из реестра и присваиваем его переменной ResultStr
  85. //Если значение параметра Version равно версии приложения, обновление устанавливается, если не равно или не существует – установка прекращается
  86.  
  87. //Функция, Оформление окон
  88. procedure DeinitializeSetup();
  89. begin
  90.   UnLoadVCLStyles;
  91. end;
  92.  
  93. //Функция, Splash
  94. procedure InitializeWizard();
  95. begin
  96.   ExtractTemporaryFile('Splash.png');
  97.   ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}\Splash.png'),1000,3000,1000,0,255,True,$FFFFFF,10);
  98. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement