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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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.2.0 [23.09.2014] - Скачать;



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

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

Аватара для Sotonisto

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


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

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


kotyarko@fb, спасибо вам большое. Теперь все работает как надо.

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Отправлено: 10:38, 10-07-2015 | #771



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

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


Аватара для habib2302

Ветеран


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

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


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

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


Отправлено: 20:20, 10-07-2015 | #772


Аватара для Dodakaedr

Ветеран


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

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


Цитата habib2302:
Как сделать допустим разрегистрацию dll'ки через Exec перед установкой »
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
var
 RC: integer;
begin
  if CurStep = ssInstall {или ssPreInstall} then
  Exec(ExpandConstant('{sys}\regsvr32.exe'), ' /u /s ' + 'test.dll', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, RC)
end;

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 11-07-2015 в 12:41.


Отправлено: 20:28, 10-07-2015 | #773


Аватара для habib2302

Ветеран


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

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


Dodakaedr, а как сделать разрегистрацию перед распаковкой файлов в зависимости от компонента

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


Последний раз редактировалось habib2302, 11-07-2015 в 01:25.


Отправлено: 22:13, 10-07-2015 | #774


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


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

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


habib2302, в зависимости от компонента
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
var
 RC: integer;
begin
//  if CurStep = ssInstall {или ssPreInstall} then
  case CurStep of ssInstall: {или ssPreInstall}
  if IsComponentSelected('r\b') {или if Installer.Checked} then
  Exec(ExpandConstant('{sys}\regsvr32.exe'), ' /u /s ' + 'test.dll', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, RC)
end;
end;
Если вариантов всего два, то можно обойтись и оператором IF. Но если их, например, десять? В этом случае оптимален оператор варианта CASE.

Последний раз редактировалось TryRooM, 11-07-2015 в 10:20.


Отправлено: 00:06, 11-07-2015 | #775


Аватара для habib2302

Ветеран


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

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


Dodakaedr,

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


Отправлено: 08:52, 11-07-2015 | #776


Аватара для kotyarko@fb

Старожил


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

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


habib2302,
Код: Выделить весь код
if CurStep = ssInstall then

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp

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

Отправлено: 08:54, 11-07-2015 | #777


Старожил


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

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


Всем доброго времени суток ! Может кто поможет реализовать такую идею : Нужно до страницы выбора папки назначения вставить страницу с выбором типа установки :
"Установка" или "Распаковка" (они должны быть взаимоисключающими т.е. с флагом exclusive ).
Если выбрана "Установка" то дальше установка должна идти как обычно (выбор папки, выбор компонентов и т.д. )
При выборе "Распаковка" должна быть страница выбора папки назначения и дальше просто распаковка в указанную пользователем папку. Можно это решить ?

Отправлено: 14:25, 11-07-2015 | #778


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


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

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


Доброе время суток. У меня возникли трудности с закрытием процесса. Нашел пример и на его основе попытался изобразить для своего случая:
Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
  begin
    if CurUninstallStep=usUninstall then
      begin
      Exec('taskkil','/f /im FmsProxy.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode);
      end;
  end;
В итоге ничего не происходит - процесс как работал, так и продолжает работать.

На всякий случай:
скриншот


Что у меня в записи с taskkil не так?
Заранее спасибо.
________
P.S. И кстати ещё один момент - как видно на скриншоте этих процессов FmsProxy.exe может быть несколько - может из-за этого не работает, и тогда как убить их все разом?

Отправлено: 19:35, 12-07-2015 | #779


Аватара для habib2302

Ветеран


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

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


palsn2000,
На этапе установки убить процесс

Код: Выделить весь код
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy

[Code]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

//**************************************************//
function InitializeSetup(): Boolean;
begin
  If RunTask('winamp.exe', false) then
    begin
      if MsgBox('Программа Winamp используется. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
        begin
          KillTask('winamp.exe');
          Result:= True;
        end else
          Exit;
    end;
Result:=True;
end;

На этапе деинсталляции убить процесс

Код: Выделить весь код
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: ignoreversion

[Code]
// функции используемые при деинсталляции
// RunTask@{app}\ISTask.dll - название функции (в данном случае, если программа работает)
// и путь dll'ки где она расположена...

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';
function KillTask(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
  if RunTask('winamp.exe', False) then
    begin
      // прячем форму
      UninstallProgressForm.Visible:= False;
      if MsgBox('Программа winamp.exe используется. Закрыть и продолжить удаление?', mbConfirmation, MB_YESNO) = IDYES then
        begin
          KillTask('winamp.exe');
          UnloadDll(ExpandConstant('{app}\ISTask.dll'));
          // показываем форму
          UninstallProgressForm.Visible:= True;
        end
      else
        begin
          MsgBox('Завершите работу winamp.exe, затем снова запустите программу удаления.', mbInformation, MB_OK);
          UnloadDll(ExpandConstant('{app}\ISTask.dll'));
          Abort;
        end;
    end;
end;

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

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

Отправлено: 19:52, 12-07-2015 | #780



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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




 
Переход