Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Ответить
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 9]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Старожил


Сообщения: 216
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата Dodakaedr:
Замените функцию и пробуйте »
Спасибо, работает.

Отправлено: 12:18, 18-07-2019 | #351



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Как вставить видео в инсталлятор?
этой библиотекой ещё можно
норм библиотека от Vintage)
Всем привет.
Все ссылки, в прочем как и имеющиеся советы - устарели. Может ли кто нибудь подсказать - как в инсталлятор вставить фоновое видео, вместо картинки?
********************************************
И ещё вопрос - как можно нормально проверить системные требования? - Уже третьи сутки ищу по форумам, везде попадается старый код для проверки XPюши или ниже, найти бы способ проверки современных ОС, а так же разрядность системы. Ну и не помешало бы адекватно проверить и остальные сис. требования, а то я нашёл старенький скрипт инсталлятора с проверкой - у меня стоит видюха на 6Гб, а проверка на 1024 - а пишет, что моего видео не достаточно, только на ОЗУ нормально работает.

Отправлено: 22:28, 22-07-2019 | #352


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Romann_:
так же разрядность системы »
Нашёл необходимый код, имеем такое:
Код: Выделить весь код
procedure UpdateInfo();
var
  DeviceName, DeviceKey: String;
begin
  ChangeText := False

  GetWindowsVersionEx(Version)

  // Операционная система:
  SystemVersionPanel.Color := clBlack
    SystemVersionPanel.Font.Color := clGreen

  DeviceKey := 'Software\Microsoft\Windows NT\CurrentVersion'
  if not UsingWinNT then StringChange(DeviceKey, 'Windows NT', 'Windows')
	RegQueryStringValue(HKLM, DeviceKey, 'ProductName', DeviceName)
  if RegQueryStringValue(HKLM, DeviceKey, 'CSDVersion', DeviceKey) then
     DeviceName := DeviceName + ' ' + DeviceKey
	StringChange(DeviceName, 'Microsoft ', '')
  SystemVersionPanel.Text := ' ' + DeviceName + ' сборка ' + IntToStr(Version.Major) + '.' + IntToStr(Version.Minor) +
                             '.' + IntToStr(Version.Build)

  if (Pos('Windows 10', SystemVersionPanel.Text) = 0) and  // Windows 10
     (Pos('Windows 7', SystemVersionPanel.Text) = 0) then   // Windows 7
     begin
      SystemVersionPanel.Color := clBlack
      SystemVersionPanel.Font.Color := clRed
      ChangeText := True
     end
...
...
...
Всё работает. Но как можно ещё проверить разрядность системы?(У некоторых всё ещё есть win7 х86.)

Последний раз редактировалось Romann_, 24-07-2019 в 12:38. Причина: Уточнение.


Отправлено: 12:36, 24-07-2019 | #353


Аватара для habib2302

Ветеран


Сообщения: 855
Благодарности: 101

Профиль | Отправить PM | Цитировать


Romann_, можете еще проштудировать форум http://krinkels.org/

-------
Помог? От "Полезное сообщение" не откажусь!!!


Последний раз редактировалось habib2302, 24-07-2019 в 13:05.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 24-07-2019 | #354


Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Romann_:
Но как можно ещё проверить разрядность системы?(У некоторых всё ещё есть win7 х86.) »
Ну могу поделиться готовым рабочим шаблоном по определению версии Windows (XP/7/Vista/8/8.1/10) и её разрядности. Там как раз ответы на все ваши вопросы, надеюсь разберётесь. Правда там подмешано определение, скачивание и установка нужной версии PowerShell. Ну и ещё там подключён плагин "Inno Download Plugin", подключён скин и подключена заставка, ну и ещё 3 языка. Надеюсь вы сами сможете убрать что лишнее и применить по своему назначению... Правда там это всё реализовано совсем по-другому, у меня прекрасно работает, может пригодится и поможет. Название программы и ссылки изменены. Не забудьте убрать нижнее подчёркивание из названия секции [_Code]
Скрипт полный
Код: Выделить весь код
;InnoSetupVersion=5.6.1 (Unicode)
#pragma include __INCLUDE__ + ";" + ReadReg(HKLM, "Software\Mitrich Software\Inno Download Plugin", "InstallDir")

#define MyApp "My Super-Puper Programm"
#define ShortName "MSPP"
#define Version "3.4.2"
#define Publisher "by SuperUser"
#define Team "Super Team"
#define URL "http://forum.oszone.net/post-2881225.html"
#define UpdatesURL "https://github.com/SuperUser/SuperTeam/blob/master/update.exe"
#define ExeName "MSPP"
#define Skin "CrystalBlue"

[Setup]
AppId={{E4F0B51A-4567-4C49-AD5D-D9A8B6BBBCF3F}
AppName={#ShortName}
AppVersion={#Version}
AppVerName={#MyApp} v{#Version}
AppPublisher={#MyApp} {#Team}
AppPublisherURL={#URL}
AppSupportURL={#URL}
AppUpdatesURL={#UpdatesURL}
DefaultDirName={sd}\{#ShortName}
DefaultGroupName={#ShortName}
ShowLanguageDialog=no
UninstallDisplayIcon={app}\MSPP.exe
UninstallDisplayName={#ShortName}
AllowNoIcons=yes
OutputDir=.
OutputBaseFilename=setup
SetupIconFile=embedded\myicon.ico
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
WizardImageAlphaFormat=premultiplied 
VersionInfoCompany={#Team}
VersionInfoCopyright={#ShortName} {#Publisher}
VersionInfoDescription={#MyApp} {#Publisher} 
VersionInfoVersion={#Version}
Compression=lzma2/max
SolidCompression=Yes

#include <idp.iss>
#include <idplang\Russian.iss>
#include <idplang\German.iss>

[Files]
Source: "embedded\ISSkin\ISSkinU.dll"; DestDir: {tmp}; Flags: dontcopy
Source: "embedded\ISSkin\Styles\{#Skin}.cjstyles"; DestDir: {tmp}; Flags: dontcopy
Source: "embedded\7z.dll"; DestDir: {tmp}; Flags: dontcopy
Source: "embedded\7z.exe"; DestDir: {tmp}; Flags: dontcopy
Source: "embedded\7z32.dll"; DestDir: {tmp}; Flags: dontcopy
Source: "embedded\7z32.exe"; DestDir: {tmp}; Flags: dontcopy
Source: "{app}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "embedded\EN\config.ini"; DestDir: "{app}"; Languages: en; Flags: ignoreversion
Source: "embedded\RU\config.ini"; DestDir: "{app}"; Languages: ru; Flags: ignoreversion
Source: "embedded\DE\config.ini"; DestDir: "{app}"; Languages: de; Flags: ignoreversion

[Languages]
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"; InfoBeforeFile: "embedded\InfoBefore-ru.rtf"
Name: "en"; MessagesFile: "compiler:Default.isl"; InfoBeforeFile: "embedded\InfoBefore-en.rtf"
Name: "de"; MessagesFile: "compiler:Languages\German.isl"; InfoBeforeFile: "embedded\InfoBefore-de.rtf"

[CustomMessages]
ru.CautionXP64=Для работы программы требуется PowerShell 5.1.%nНа Windows XP 64bit программа не сможет скачивать обновления для конвертации игр и выполнять некоторые другие функции.
ru.CautionVI64=Для работы программы требуется PowerShell 5.1.%nНа Windows Vista 64bit программа не сможет скачивать обновления для конвертации игр и выполнять некоторые другие функции.
ru.Caution7064=На компьютере обнаружена устаревшая версия PowerShell.%nПосле установки программы будет произведено скачивание и установка обновления PowerShell 5.1 для Windows 7 64bit.%n%nПожалуйста, дождитесь завершения обновления!
ru.Caution8064=На компьютере обнаружена устаревшая версия PowerShell.%nПосле установки программы будет произведено скачивание и установка обновления PowerShell 5.1 для Windows 8.0 64bit.%n%nПожалуйста, дождитесь завершения обновления!
ru.Caution8164=На компьютере обнаружена устаревшая версия PowerShell.%nПосле установки программы будет произведено скачивание и установка обновления PowerShell 5.1 для Windows 8.1 64bit.%n%nПожалуйста, дождитесь завершения обновления!
ru.CautionXP32=Для работы программы требуется PowerShell 5.1.%nНа Windows XP 32bit программа не сможет скачивать обновления для конвертации игр и выполнять некоторые другие функции.
ru.CautionVI32=Для работы программы требуется PowerShell 5.1.%nНа Windows Vista 32bit программа не сможет скачивать обновления для конвертации игр и выполнять некоторые другие функции.
ru.Caution7032=На компьютере обнаружена устаревшая версия PowerShell.%nПосле установки программы будет произведено скачивание и установка обновления PowerShell 5.1 для Windows 7 32bit.%n%nПожалуйста, дождитесь завершения обновления!
ru.Caution8132=На компьютере обнаружена устаревшая версия PowerShell.%nПосле установки программы будет произведено скачивание и установка обновления PowerShell 5.1 для Windows 8.1 32bit.%n%nПожалуйста, дождитесь завершения обновления!

en.CautionXP64=The program requires PowerShell 5.1.%nOn Windows XP 64bit, the program will not be able to download updates for converting games and perform some other functions.
en.CautionVI64=The program requires PowerShell 5.1.%nOn Windows Vista 64bit, the program will not be able to download updates for converting games and perform some other functions.
en.Caution7064=An outdated version of PowerShell has been detected on your computer.%nAfter installing the program, the PowerShell 5.1 update for Windows 7 64bit will be downloaded and installed.%n%nPlease wait until the update is complete!
en.Caution8064=An outdated version of PowerShell has been detected on your computer.%nAfter installing the program, the PowerShell 5.1 update for Windows 8.0 64bit will be downloaded and installed.%n%nPlease wait until the update is complete!
en.Caution8164=An outdated version of PowerShell has been detected on your computer.%nAfter installing the program, the PowerShell 5.1 update for Windows 8.1 64bit will be downloaded and installed.%n%nPlease wait until the update is complete!
en.CautionXP32=The program requires PowerShell 5.1.%nOn Windows XP 32bit, the program will not be able to download updates for converting games and perform some other functions.
en.CautionVI32=The program requires PowerShell 5.1.%nOn Windows Vista 32bit, the program will not be able to download updates for converting games and perform some other functions.
en.Caution7032=An outdated version of PowerShell has been detected on your computer.%nAfter installing the program, the PowerShell 5.1 update for Windows 7 32bit will be downloaded and installed.%n%nPlease wait until the update is complete!
en.Caution8132=An outdated version of PowerShell has been detected on your computer.%nAfter installing the program, the PowerShell 5.1 update for Windows 8.1 32bit will be downloaded and installed.%n%nPlease wait until the update is complete!

de.CautionXP64=Das Programm erfordert PowerShell 5.1.%nUnter Windows XP 64bit kann das Programm keine Updates zum Konvertieren von Spielen herunterladen und einige andere Funktionen ausführen.
de.CautionVI64=Das Programm erfordert PowerShell 5.1.%nUnter Windows Vista 64bit kann das Programm keine Updates zum Konvertieren von Spielen herunterladen und einige andere Funktionen ausführen.
de.Caution7064=Auf Ihrem Computer wurde eine veraltete Version von PowerShell erkannt.%nNach der Installation des Programms wird das PowerShell 5.1-Update für Windows 7 64bit heruntergeladen und installiert.%n%nBitte warten Sie bis das Update abgeschlossen ist!
de.Caution8064=Auf Ihrem Computer wurde eine veraltete Version von PowerShell erkannt.%nNach der Installation des Programms wird das PowerShell 5.1-Update für Windows 8.0 64bit heruntergeladen und installiert.%n%nBitte warten Sie bis das Update abgeschlossen ist!
de.Caution8164=Auf Ihrem Computer wurde eine veraltete Version von PowerShell erkannt.%nNach der Installation des Programms wird das PowerShell 5.1-Update für Windows 8.1 64bit heruntergeladen und installiert.%n%nBitte warten Sie bis das Update abgeschlossen ist!
de.CautionXP32=Das Programm erfordert PowerShell 5.1.%nUnter Windows XP 32bit kann das Programm keine Updates zum Konvertieren von Spielen herunterladen und einige andere Funktionen ausführen.
de.CautionVI32=Das Programm erfordert PowerShell 5.1.%nUnter Windows Vista 32bit kann das Programm keine Updates zum Konvertieren von Spielen herunterladen und einige andere Funktionen ausführen.
de.Caution7032=Auf Ihrem Computer wurde eine veraltete Version von PowerShell erkannt.%nNach der Installation des Programms wird das PowerShell 5.1-Update für Windows 7 32bit heruntergeladen und installiert.%n%nBitte warten Sie bis das Update abgeschlossen ist!
de.Caution8132=Auf Ihrem Computer wurde eine veraltete Version von PowerShell erkannt.%nNach der Installation des Programms wird das PowerShell 5.1-Update für Windows 8.1 32bit heruntergeladen und installiert.%n%nBitte warten Sie bis das Update abgeschlossen ist!

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Icons]
Name: "{group}\{#ShortName}"; Filename: "{app}\{#ExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#ShortName}}"; Filename: "{#URL}"
Name: "{group}\{cm:UninstallProgram,{#ShortName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#ShortName}"; Filename: "{app}\{#ExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#ShortName}"; Filename: "{app}\{#ExeName}"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\{#ExeName}"; Description: "{cm:LaunchProgram,{#StringChange(ShortName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[_Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:ISSkinU.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:ISSkinU.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

function IsWindowsVersionOrNewer(Major, Minor: Integer): Boolean;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);
  Result := (Version.Major > Major) or ((Version.Major = Major) and (Version.Minor >= Minor));
end;

function IsWindowsXPOrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(5, 1); end;
function IsWindowsViOrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(6, 0); end;
function IsWindows70OrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(6, 1); end;
function IsWindows80OrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(6, 2); end;
function IsWindows81OrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(6, 3); end;
function IsWindows10OrNewer: Boolean; begin Result := IsWindowsVersionOrNewer(10,0); end;

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('{#Skin}.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\{#Skin}.cjstyles'), '');
	Result := True;
end;

// Скачиваем PowerShell 5.1 под нашу версию Windows и битность...
procedure InitializeWizard;
var
  PSVersion: String;
begin
  RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine','PowerShellVersion', PSVersion);
  if Copy(PSVersion,1,3) < '5.1' then
   begin
    if IsWin64 then
     begin
      if IsWindowsXPOrNewer and not IsWindowsViOrNewer then begin MsgBox(ExpandConstant('{cm:CautionXP64}'),mbCriticalError, MB_OK); end else
      if IsWindowsViOrNewer and not IsWindows70OrNewer then begin MsgBox(ExpandConstant('{cm:CautionVI64}'),mbCriticalError, MB_OK); end else
      if IsWindows70OrNewer and not IsWindows80OrNewer then begin MsgBox(ExpandConstant('{cm:Caution7064}'), mbInformation, MB_OK);
        idpAddFileSize('https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win7AndW2K8R2-KB3191566-x64.zip',ExpandConstant('{tmp}\Win7AndW2K8R2-KB3191566-x64.zip'),68076477); end else
      if IsWindows80OrNewer and not IsWindows81OrNewer then begin MsgBox(ExpandConstant('{cm:Caution8064}'), mbInformation, MB_OK);
        idpAddFileSize('https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/W2K12-KB3191565-x64.msu',ExpandConstant('{tmp}\W2K12-KB3191565-x64.msu'),21585220); end else
      if IsWindows81OrNewer and not IsWindows10OrNewer then begin MsgBox(ExpandConstant('{cm:Caution8164}'), mbInformation, MB_OK);
        idpAddFileSize('https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1AndW2K12R2-KB3191564-x64.msu',ExpandConstant('{tmp}\Win8.1AndW2K12R2-KB3191564-x64.msu'),19878906); end;
     end
    else
     begin
      if IsWindowsXPOrNewer and not IsWindowsViOrNewer then begin MsgBox(ExpandConstant('{cm:CautionXP32}'),mbCriticalError, MB_OK); end else
      if IsWindowsViOrNewer and not IsWindows70OrNewer then begin MsgBox(ExpandConstant('{cm:CautionVI32}'),mbCriticalError, MB_OK); end else
      if IsWindows70OrNewer and not IsWindows80OrNewer then begin MsgBox(ExpandConstant('{cm:Caution7032}'), mbInformation, MB_OK);
        idpAddFileSize('https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win7-KB3191566-x86.zip',ExpandConstant('{tmp}\Win7-KB3191566-x86.zip'),44821734); end else
      if IsWindows81OrNewer and not IsWindows10OrNewer then begin MsgBox(ExpandConstant('{cm:Caution8132}'), mbInformation, MB_OK);
        idpAddFileSize('https://download.microsoft.com/download/6/F/5/6F5FF66C-6775-42B0-86C4-47D41F2DA187/Win8.1-KB3191564-x86.msu',ExpandConstant('{tmp}\Win8.1-KB3191564-x86.msu'),15231117); end;
     end;
    idpDownloadAfter(wpReady);
   end;
end;

// Во время показа страницы загрузки открываем по умолчанию скрытые детали загрузки... 
procedure CurPageChanged(CurPageID: Integer); 
begin 
 if Assigned(IDPForm.Page) then
  begin
   if CurPageID = IDPForm.Page.ID then 
    begin 
     // Показать детали загрузки 
     idpShowDetails(True); 
     // Скрываем кнопку Подробно/Скрыть 
     IDPForm.DetailsButton.Visible := False; 
    end;
  end; 
end;

// Распаковываем ранее скачанный ZIP/MSU и запускаем установку... 
procedure CurStepChanged(CurStep: TSetupStep);
var
  ResultCode: Integer;
begin
  if CurStep = ssPostInstall then 
   begin
    if IsWin64 then
     begin
      if FileExists(ExpandConstant('{tmp}\Win7AndW2K8R2-KB3191566-x64.zip')) then
       begin
        ExtractTemporaryFile('7z.exe');
        ExtractTemporaryFile('7z.dll');
        ShellExec('open',ExpandConstant('{tmp}\7z.exe'),ExpandConstant('x -y -oExtractedArchive ')+ExpandConstant('Win7AndW2K8R2-KB3191566-x64.zip'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
        ShellExec('open',ExpandConstant('{sys}\wusa.exe'),ExpandConstant('{tmp}\ExtractedArchive\Win7AndW2K8R2-KB3191566-x64.msu'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode);
       end;
      if FileExists(ExpandConstant('{tmp}\W2K12-KB3191565-x64.msu')) then ShellExec('open',ExpandConstant('{sys}\wusa.exe'),ExpandConstant('{tmp}\W2K12-KB3191565-x64.msu'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode);
      if FileExists(ExpandConstant('{tmp}\Win8.1AndW2K12R2-KB3191564-x64.msu')) then ShellExec('open',ExpandConstant('{sys}\wusa.exe'),ExpandConstant('{tmp}\Win8.1AndW2K12R2-KB3191564-x64.msu'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode);
     end
    else
     begin
      if FileExists(ExpandConstant('{tmp}\Win7-KB3191566-x86.zip')) then
       begin
        ExtractTemporaryFile('7z32.exe');
        ExtractTemporaryFile('7z32.dll');
        ShellExec('open',ExpandConstant('{tmp}\7z32.exe'),ExpandConstant('x -y -oExtractedArchive ')+ExpandConstant('Win7-KB3191566-x86.zip'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
        ShellExec('open',ExpandConstant('{sys}\wusa.exe'),ExpandConstant('{tmp}\ExtractedArchive\Win7-KB3191566-x86.msu'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode);
       end;
      if FileExists(ExpandConstant('{tmp}\Win8.1-KB3191564-x86.msu')) then ShellExec('open',ExpandConstant('{sys}\wusa.exe'),ExpandConstant('{tmp}\Win8.1-KB3191564-x86.msu'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode);
     end;
   end;
end;

procedure DeinitializeSetup();
begin
  ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
  UnloadSkin();
end;

Последний раз редактировалось ErikPshat, 24-07-2019 в 13:39.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:30, 24-07-2019 | #355


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Romann_:
так же разрядность системы »
Нашёл необходимый код, имеем такое:
Код: Выделить весь код
procedure UpdateInfo();
var
  DeviceName, DeviceKey: String;
begin
  ChangeText := False

  GetWindowsVersionEx(Version)

  // Операционная система:
  SystemVersionPanel.Color := clBlack
    SystemVersionPanel.Font.Color := clGreen

  DeviceKey := 'Software\Microsoft\Windows NT\CurrentVersion'
  if not UsingWinNT then StringChange(DeviceKey, 'Windows NT', 'Windows')
	RegQueryStringValue(HKLM, DeviceKey, 'ProductName', DeviceName)
  if RegQueryStringValue(HKLM, DeviceKey, 'CSDVersion', DeviceKey) then
     DeviceName := DeviceName + ' ' + DeviceKey
	StringChange(DeviceName, 'Microsoft ', '')
  SystemVersionPanel.Text := ' ' + DeviceName + ' сборка ' + IntToStr(Version.Major) + '.' + IntToStr(Version.Minor) +
                             '.' + IntToStr(Version.Build)

  if (Pos('Windows 10', SystemVersionPanel.Text) = 0) and  // Windows 10
     (Pos('Windows 7', SystemVersionPanel.Text) = 0) then   // Windows 7
     begin
      SystemVersionPanel.Color := clBlack
      SystemVersionPanel.Font.Color := clRed
      ChangeText := True
     end
...
...
...
Всё работает. Но как можно ещё проверить разрядность системы?

Отправлено: 06:26, 07-08-2019 | #356


Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Romann_:
Но как можно ещё проверить разрядность системы? »
Вы уже третий раз задаёте один и тот же вопрос Выше же я вам дал код определения разрядности системы, просто там в соответствии с разрядностью идёт скачивание PowerShell определённой версии и разрядности, а вам надо было просто подменить тот код на вывод информации на экран, либо воспроизведение каких-либо действий, по вашему желанию.
В общем вот вам чистый код по определению разрядности с подробными комментариями "//", строки с комментариями можете после осознования удалить, простая функция Inno Setup:
Код: Выделить весь код
// До секции CODE прописываем свои текстовые сообщения, чтобы не отнимать место в коде программы в секции CODE:

[CustomMessages]
Info-text-x64=У вас разрядность системы Windows - x64.%nЭто значит, что система 64-битная.%n%nНе переживайте, всё будет хорошо.
Info-text-x86=У вас разрядность системы Windows - x86.%nЭто значит, что система 32-битная.%n%nНе переживайте, всё будет хорошо.

// То, что ниже, пишем в секции CODE:

// Если у вас x64, тогда...
if IsWin64 then
     // Выполняем в таком случае код между "begin" и "end" (между стартом и концом):
     begin
        // Выводим оповещение об разрядности x64 на экран:
        MsgBox(ExpandConstant('{cm:Info-text-x64}'), mbInformation, MB_OK);
     end

// В противном случае (т.е. если у вас не x64, а значит x86):
else
     // Выполняем в таком случае код между "begin" и "end" (между стартом и концом)
     begin
        // Выводим оповещение об разрядности x86 на экран
        MsgBox(ExpandConstant('{cm:Info-text-x86}'), mbInformation, MB_OK);
     end;

Последний раз редактировалось ErikPshat, 10-08-2019 в 07:31.


Отправлено: 08:34, 07-08-2019 | #357


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здраствуйте. Подскажите пожалуйста, как добавить программу в автозагрузку так, чтобы аваст не ругался?
Сейчас используется строка
Name: "{commonstartup}\Активація перекладу"; Filename: "{app}\ua_lang\Активація перекладу.exe"; Components: translate\auto; AfterInstall: ExecStartupFile()

Находит IDP.Generic.

Сама программа абсолютно безвредна. Даже если новосозданный текстовик переименовать в "Активація перекладу.exe" и скомпилировать скрипт, реакция аваста всё та же - IDP.Generic.

Это однозначно должно как-то исправляться. Очень прошу вашего совета.

Отправлено: 02:21, 26-09-2019 | #358


Старожил


Сообщения: 352
Благодарности: 192

Профиль | Отправить PM | Цитировать


Карась з Днiпра,
Аваст, видимо, параноит на слово "Активація" в сочетании с расширением/типом исполняемого файла.

Попробовать исправить это можно:
1. изменением имени файла, если это допустимо
2. хранением внутри установщика файла под другим именем с переименовыванием после копирования в место назначения.
3. защитой паролем/шифрование имён внутри архива/установщика, чтобы антивирус не видел имён файлов.
4. обращением к разработчикам Аваста, чтобы они после проверки добавили этот .exe в исключения.
5. <что-нибудь связанное с заменой этого параноика на более адекватное решение>.
6. ....

Последний раз редактировалось iglezz, 26-09-2019 в 12:08.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:12, 26-09-2019 | #359


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за совет. Но вот пятый вариант решения точно не подходит. Я пишу программу для всех, не только для себя, и важно, чтобы антивири не пугали народ.

Отправлено: 12:05, 26-09-2019 | #360



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход