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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Аватара для ZVSRus

Старожил


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

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


Цитата habib2302:
Как присвоить команду к каждому компоненту (для нормальной установки и распаковки портативной версии), чтобы можно было использовать тихую установку.
Пример

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode


Последний раз редактировалось ZVSRus, 20-10-2020 в 09:17.


Отправлено: 09:05, 20-10-2020 | #701



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

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


Аватара для habib2302

Ветеран


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

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


ZVSRus, Пробовал этот метод, но не работает. Может вы поможете соединить мой скрипт с вашим примером

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


Отправлено: 12:13, 20-10-2020 | #702


Аватара для ZVSRus

Старожил


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

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


Цитата habib2302:
Пробовал этот метод, но не работает.
Что конкретно не работает. Пример что привел выше, или что. В примере есть скомпилированный Setup.exe и два батника, запустите и проверьте.

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode


Отправлено: 12:31, 20-10-2020 | #703


Аватара для habib2302

Ветеран


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

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


Цитата ZVSRus:
В примере есть скомпилированный Setup.exe »
При чем тут пример. Вы склейте два скрипта

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


Отправлено: 12:51, 20-10-2020 | #704


Аватара для ZVSRus

Старожил


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

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


Цитата habib2302:
При чем тут пример. Вы склейте два скрипта
Вам что нужно то, примеры, подсказки, или что-бы кто то за вас сделал?

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 13:12, 20-10-2020 | #705


Аватара для habib2302

Ветеран


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

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


ZVSRus, Посмотрите, правильно ли сделал?
Скрытый текст
Код: Выделить весь код
#define AppName "Axialis IconWorkshop"
#define AppVersion "6.9.1"
#include "include\botva2.iss"

[Setup]
AppName={#AppName}
AppVerName={#AppName} {#AppVersion}
AppId={#AppName}
AppVersion={#AppVersion}
AppCopyright=Xabib © 2020
AppPublisher=Axialis Software
AllowNoIcons=yes
DefaultDirName={code:GetDefaultDirName}\{#AppName}
DefaultGroupName={#AppName}
DisableWelcomePage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
DirExistsWarning=no
PrivilegesRequiredOverridesAllowed=dialog
SetupIconFile=Install.ico
UninstallDisplayIcon={app}\IconWorkshop.exe
UninstallDisplayName={#AppName} {#AppVersion}
OutputBaseFilename={#AppName} {#AppVersion} RePack (& Portable) by Xabib
VersionInfoDescription={#AppName} RePack by Xabib
VersionInfoVersion={#AppVersion}
Compression=lzma2/ultra64
SolidCompression=true
InternalCompressLevel=ultra64
LZMADictionarySize=65536
LZMAMatchFinder=BT
LZMANumFastBytes=273
Uninstallable=not IsInPortableMode
UsePreviousAppDir=no
CreateUninstallRegKey=not IsInPortableMode
RawDataResource=Botva>botva2.dll,WMSI>WMSI.png

[Languages]
Name: enu; MessagesFile: compiler:default.isl
Name: rus; MessagesFile: compiler:Languages\russian.isl

[Messages]
BeveledLabel=RePack by Xabib
SelectLanguageTitle={#AppName}

[CustomMessages]
enu.CreateConfigShowOptions=Show options window (when finishing install)
enu.CreateDefaultConfig=Create default configuration
enu.ForbiddenDirMessage=In portable mode, %1 should not be installed in "Program Files" or similar system directories.
enu.InstallModePageCaption=Pick Installation Mode
enu.InstallModePageDescription=Do you prefer integration into Windows or a portable installation?
enu.InstallModePageNormalOption=Normal - Integrates into Windows
enu.InstallModePagePortableOption=Portable - Supports removeable drives (e.g., USB pen drives)
enu.InstallModePageSubCaption=Choose a normal installation that integrates into Windows (e.g., Startmenu, optional Explorer context menu), or a portable installation that can run on any compatible Windows machine.
enu.LanguageFilesComponent=Languages
enu.OpenInstallFolderAfterInstall=Open installation target folder
enu.ProgramFilesComponent=Program Files
enu.StatusRunHxDToCreateConfigFile=Create configuration file...
enu.TaskConfigurationFile=Configuration file:
enu.WriteProtectConfig=Make readonly
enu.PortableButtonInstall=&Unpack
rus.CreateConfigShowOptions=Показать окно параметров (после завершения установки)
rus.CreateDefaultConfig=Создать конфигурацию по умолчанию
rus.ForbiddenDirMessage=В портативном режиме %1 не следует устанавливать в «Program Files» или аналогичных системных каталогах.
rus.InstallModePageCaption=Выберите тип установки
rus.InstallModePageDescription=Предпочитаете интеграцию в Windows или портативную версию?
rus.InstallModePageNormalOption=Нормальная - интеграция в Windows
rus.InstallModePagePortableOption=Портативная - поддерживает переносимые устройства (USB/HDD)
rus.InstallModePageSubCaption=Выберите нормальный тип для установки программы в Windows (добавление в меню Пуск, опционально в контекстное меню) или портативную для работы программы на любом ПК, совместимым с Windows
rus.LanguageFilesComponent=Языки
rus.OpenInstallFolderAfterInstall=Открыть папку установки
rus.ProgramFilesComponent=Program Files
rus.StatusRunHxDToCreateConfigFile=Создать файл конфигурации...
rus.TaskConfigurationFile=Файл конфигурации:
rus.WriteProtectConfig=Сделать доступным только для чтения
rus.PortableButtonInstall=&Распаковать

[Files]
Source: "{app}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not IsInPortableMode;
Source: "{userdocs}\*"; DestDir: "{userdocs}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not IsInPortableMode;
Source: "{userappdata}\*"; DestDir: "{userappdata}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: not IsInPortableMode;
Source: "{app}\*"; DestDir: "{app}\App\IconWorkshop"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsInPortableMode;
Source: "{userdocs}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsInPortableMode;
Source: "{userappdata}\*"; DestDir: "{app}\App\DefaultData"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: IsInPortableMode;
Source: "IconWorkshopPortable.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: IsInPortableMode;
Source: "IconWorkshop_RUS.reg"; DestDir: "{app}\Data"; DestName: "IconWorkshop.reg"; Flags: ignoreversion; Languages: rus; Check: IsInPortableMode;
Source: "IconWorkshop_ENG.reg"; DestDir: "{app}\Data"; DestName: "IconWorkshop.reg"; Flags: ignoreversion; Languages: enu; Check: IsInPortableMode;

#include "include\Registry.iss"

[Run]
Filename: netsh.exe; Parameters: "advfirewall firewall add rule name=""{#AppName}"" dir=in action=block program=""{app}\IconWorkshop.exe"" enable=yes"; Check: not IsInPortableMode; Flags: runhidden;
Filename: netsh.exe; Parameters: "advfirewall firewall add rule name=""{#AppName}"" dir=out action=block program=""{app}\IconWorkshop.exe"" enable=yes"; Check: not IsInPortableMode; Flags: runhidden;

[Icons]
Name: {group}\{#AppName}; Filename: {app}\IconWorkshop.exe; Check: not IsInPortableMode;
Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}; Check: not IsInPortableMode;
Name: {autodesktop}\{#AppName}; Filename: {app}\IconWorkshop.exe; Tasks: desktopicon; Check: not IsInPortableMode;

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Check: not IsInPortableMode;

[UninstallRun]
Filename: taskkill; Parameters: "/f /im IconWorkshop.exe"; Flags: RunHidden;
Filename: netsh.exe; Parameters: "advfirewall firewall delete rule name=""{#AppName}"""; Check: not IsInPortableMode; Flags: runhidden;

#include "include\UninstallDelete.iss"

[INI]
; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "0"; Check: not IsInPortableMode;

; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\Deleted Items\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\Deleted Items\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\Deleted Items\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "1"; Check: not IsInPortableMode;

; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\Icons\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\Icons\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\Icons\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "6"; Check: not IsInPortableMode;

; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\Media Files\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\Media Files\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\Media Files\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "12"; Check: not IsInPortableMode;

; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\Media Files\Images\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\Media Files\Images\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\Media Files\Images\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "8"; Check: not IsInPortableMode;

; Imported INI File: "C:\Users\Admin\Documents\Axialis Librarian\Objects\desktop.ini"
Filename: "{userdocs}\Axialis Librarian\Objects\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "{app}\axlibico.dll"; Check: not IsInPortableMode;
Filename: "{userdocs}\Axialis Librarian\Objects\desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "14"; Check: not IsInPortableMode;

[Code]
#ifdef UNICODE
  #define A "W"
#else
  #define A "A"
#endif

const
  RT_RCDATA = 10;

var
  InputOptionPage: TInputOptionWizardPage;
  lResStream: TResourceStream;
  lPicHandle: THandle;
  i: integer;
    Install: TNewRadioButton;
  Portable: TNewRadioButton;
  PortablePanel: TPanel;
  InstallerPanel: TPanel;

function CheckParam(s: string): boolean; 
begin
  for i := 0 to ParamCount do
  begin
    Result := ParamStr(i) = s;
    if Result then Break;
  end;
end;

function GetInstallDir(S: String): String;
begin
  if CheckParam('/P') then
    Result:= ExpandConstant('{userdesktop}\{#AppName}')
  else
    Result:= ExpandConstant(S);
end;

function InstallCheck: Boolean;
begin
  Result := Install.Checked or CheckParam('/I');
end;

function IsInPortableMode: Boolean;
begin
  Result := InputOptionPage.Values[1] and CheckParam('/P');
end;

function GetDefaultDirName(const AParam: string): string;
begin
  if ExpandConstant('{param:portable|0}') = '1' then
    Result := ExpandConstant('{userdesktop}') else
    Result := ExpandConstant('{autopf}');
end;

//Запрет распаковки в системные папки-----Start-----
function IsForbiddenDir(const ADir: string): Boolean;
begin
  Result := IsAdminInstallMode and
    ((not IsWin64 and (Pos(ExpandConstant('{win}'), ADir) = 1)) or
    (not IsWin64 and (Pos(ExpandConstant('{commonpf32}'), ADir) = 1)) or
    (IsWin64 and (Pos(ExpandConstant('{commonpf64}'), ADir) = 1)));
end;
//Запрет распаковки в системные папки-----Finish-----
//Замена пути распаковки в зависимости от типа-----Start-----
procedure InstallModeListBoxClick(Sender: TObject);
begin
  if IsInPortableMode and (CompareText(WizardDirValue, ExpandConstant('{autopf}\{#AppName}')) = 0) then
    WizardForm.DirEdit.Text := ExpandConstant('{userdesktop}\{#AppName}')
  else if not IsInPortableMode and (CompareText(WizardDirValue, ExpandConstant('{userdesktop}\{#AppName}')) = 0) then
    WizardForm.DirEdit.Text := ExpandConstant('{autopf}\{#AppName}');
end;
//Замена пути распаковки в зависимости от типа-----Finish-----
//Создание новой страницы-----Start-----
procedure CreateInstallModePage;
begin
  InputOptionPage := CreateInputOptionPage(wpWelcome, ExpandConstant('{cm:InstallModePageCaption}'),
    ExpandConstant('{cm:InstallModePageDescription}'), ExpandConstant('{cm:InstallModePageSubCaption}'), True, False);
  InputOptionPage.Add(ExpandConstant('{cm:InstallModePageNormalOption}'));
  InputOptionPage.Add(ExpandConstant('{cm:InstallModePagePortableOption}'));;
  InputOptionPage.Values[1] := ExpandConstant('{param:portable|0}') = '1';
  InputOptionPage.Values[0] := not InputOptionPage.Values[1];
  InputOptionPage.CheckListBox.OnClickCheck := @InstallModeListBoxClick;
end;
//Создание новой страницы-----Finish-----
//Замена текста в кнопке "Далее" в зависимости от типа-----Start-----
procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    wpSelectTasks:
      begin
        if not IsInPortableMode then
          WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) else
          WizardForm.NextButton.Caption := ExpandConstant('{cm:PortableButtonInstall}');
      end;
  end;
end;
//Замена текста в кнопке "Далее" в зависимости от типа-----Finish-----
//Уведомление о запрете распаковки в системные папки-----Start-----
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  case CurPageId of
    wpSelectDir:
      if IsInPortableMode then
      begin
        Result := not IsForbiddenDir(WizardDirValue);
        if not Result then
          MsgBox(ExpandConstant('{cm:ForbiddenDirMessage,{#AppName}}'), mbError, MB_OK);
      end;
  end;
end;
//Уведомление о запрете распаковки в системные папки-----Finish-----
//Отключение страници создания папку в Пуске при выборе типа Портативная-----Start-----
function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result := False;
  case PageID of
    wpSelectProgramGroup:
      Result := IsInPortableMode;
  end;
end;
//Отключение страници создания папку в Пуске при выборе типа Портативная-----Finish-----
function GetFromRes(const ResName, SaveFileName: String): Boolean;
begin
    lResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    lResStream.SaveToFile(ExpandConstant('{tmp}\') + SaveFileName);
  finally
    lResStream.Free;
    Result := FileExists(ExpandConstant('{tmp}\') + SaveFileName);
  end;
end;
//Подгрузка новой страницы-----Start-----
procedure InitializeWizard;
begin
  CreateInstallModePage;
  with WizardForm do
  begin
  if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_WMSI', 'WMSI.png') then
    begin
      lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\WMSI.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, False);
      WizardSmallBitmapImage.Hide;
      ImgSetVisibility(lPicHandle, True);
      ImgApplyChanges(MainPanel.Handle);
    end;
  end;
end;
//Подгрузка новой страницы-----Finish-----
procedure DeinitializeSetup();
begin
  gdipShutDown();
end;

function SetFileAttributes(lpFileName: string; dwFileAttributes: integer): integer;
external 'SetFileAttributes{#A}@kernel32.dll stdcall';

procedure CurStepChanged(CurStep: TSetupStep);
var
  RC: integer;
begin
  if CurStep = ssInstall then
begin
  Exec(ExpandConstant('taskkill'), ' /f /im IconWorkshop.exe', '', SW_HIDE, ewWaitUntilTerminated, RC);
end;
  if CurStep = ssDone then
begin
  if not IsInPortableMode then
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\Deleted Items\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\Icons\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\Media Files\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\Media Files\Images\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
  SetFileAttributes((ExpandConstant('{userdocs}\Axialis Librarian\Objects\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
  if CurStep = ssDone then
begin
  if not IsInPortableMode then
  if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1') and not WizardSilent then
  MsgBox('Готово!', mbInformation, MB_OK)
  else
  if not WizardSilent then
  MsgBox('Установка {#AppName} была прервана!', mbError, MB_OK);
end;
  if CurStep = ssDone then
begin
  if IsInPortableMode then
  if not WizardSilent then
  if FileExists(ExpandConstant('{app}\IconWorkshopPortable.exe' )) then
  MsgBox('Готово!', mbInformation, MB_OK)
  else
  if not FileExists(ExpandConstant('{app}\IconWorkshopPortable.exe' )) then
  MsgBox('Установка {#AppName} была прервана!', mbError, MB_OK);
end;
end;

procedure InitializeUninstallProgressForm;
begin
  with UninstallProgressForm do
  begin
    if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_WMSI', 'WMSI.png') then
  begin
    lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\WMSI.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, False);
    WizardSmallBitmapImage.Hide;
    ImgSetVisibility(lPicHandle, True);
    ImgApplyChanges(MainPanel.Handle);
    end;
  end;
end;

procedure DeinitializeUninstall();
begin
  gdipShutDown();
end;

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


Отправлено: 10:28, 25-10-2020 | #706


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


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

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


Приветствую.
У меня такая проблема, имеется программа которая скомпеллирована из двух исполняемых файлов и запускается из экзешника без установки.
При первом ее запуске, в системе на постоянной основе начинает работать исполняемый файл,
и после закрытия программы этот файл остается в работе.
При последующих запусках этой программы, она уже не запускается и выдает ошибку,
так как ей мешает запустившийся исполняемый файл, который начал исполняться во время первого запуска программы.
ВОПРОС, как сделать что бы программа которая скомпеллирована из двух исполняемых файлов и запускается из экзешника без установки, игнорировала файл который ей мешает при повторном запуске или перезаписывала его вновь?

Последний раз редактировалось Egiptyanin245, 28-10-2020 в 11:33.


Отправлено: 00:43, 27-10-2020 | #707


Ветеран


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

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


Цитата Egiptyanin245:
ВОПРОС, как сделать что бы исполняемый файл игнорировался программой при повторном запуске или перезаписывался вновь? »
Переписать:
Цитата Egiptyanin245:
программа которая скомпеллирована из двух исполняемых файлов и запускается из экзешника без установки. »

Отправлено: 22:37, 27-10-2020 | #708


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


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

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


не совсем понял что вы имели ввиду? советуете мне исправить формулировку вопроса? если так, то уже исправил.

Отправлено: 11:30, 28-10-2020 | #709


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


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

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


Скиньте плиз все srep и rep одним архивом, и isdone 5 и 6 версию финал

Отправлено: 00:44, 22-11-2020 | #710



Компьютерный форум 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




 
Переход