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

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

 

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


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

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


Iska, я просто хотел сделать свою форму для всех инсталлеров, одну форму оригинальную как на фото что я приводил, без музыки без кучи переходов с разными картинками, без своего имени у названия инсталятора и темболие папок со своим именем, без галочок доп софта взял все кредисты от 2010 запихнул в инсталлер он проверил если есть то не устанавливал, чтобы потом не висело по неськолько деинсталяторов в компонентах, минимум галочек вкладок ненужного текста максимальная скорость установки, пускай и проиграю в весе, все что от себя ето например малинький штамп на форме гдето в уголке но если устанавливается например Aster-V7 со встроиным сбросом триала, то папка без возможности изменений во (все программы) так и називалась Aster-V7, а не Beavimo , если я случайно удалю ярлык с робочего стола я полезу в все программы искать программу а не автора инсталлера. ладно думаю более мение доходчиво обяснил. и вопше сначала мотор тормоза колеса рулевая.... а покраска в конце, а не код на десять страниц + куча дллок, пожал до усрачки качаешь быстрей чем устанавливаешь, а самые больные бывает в игру при запуске свое лого запихнут это придел совершенства, не в обиду, просто достали типа блогеры. щенки мамины текст зазубрил а сам нуб в теме... нет я не говорю что я программер но я не пригаю выше головы ладно я завелся фен пошла четвертая сутка и самое главное ети все виртуалки и прочее мне до етого не были знакомы, так что бесят поиски однострочного ответа часами, блохеры мать их

Последний раз редактировалось Beavimo, 10-02-2020 в 02:15.


Отправлено: 02:01, 10-02-2020 | #551



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

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


SHVtYW4=


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

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


Цитата Beavimo:
я просто хотел сделать свою форму для всех инсталлеров »
Это ваше право что хотите сделать, а для себя всё что только взумается. В сообщении #495 имеются ссылки на скрипты. Поискав там же, можно найте ещё больше. Увидите наглядно что можно сделать с помощью Inno.

Цитата Beavimo:
форму оригинальную как на фото что я приводил »

Простота - Это высшее достижение в искусстве.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Последний раз редактировалось Nordek, 10-02-2020 в 11:51.

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

Отправлено: 11:46, 10-02-2020 | #552


Аватара для habib2302

Ветеран


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

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


Доброе время суток. Надо доработать кусок скрипта. Хочу, чтобы при нажатии кнопки нет на msgbox'е инсталлятор завершил работу, но не через task kill, а чтобы была полная имитация кнопки отмены.

Скрытый текст
Код: Выделить весь код
[Code]
function UninstallMyApp(): Boolean;
var
    Buff: String;
    i: Integer;
begin
    Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
    if not Result then Result := not FileExists(RemoveQuotes(Buff));
    if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию {#Name}. Продолжить?', mbError, MB_YESNO) = IDYES then
    try
        Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
    finally
        Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
        if not Result then MsgBox('Удаление завершилось неудачей!', mbError, MB_OK);
    end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
  Case CurPageID of
  wpSelectComponents: if WizardForm.Tag = 1 then
  begin
    if IsComponentSelected('APP\I') then
    begin
      UninstallMyApp;
  end;
 end;
end;

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


Последний раз редактировалось habib2302, 12-02-2020 в 02:30.


Отправлено: 02:25, 12-02-2020 | #553


Аватара для Gnom_aka_Lexander

Ветеран


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

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


habib2302,
Так?
Код: Выделить весь код
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  if CurPageID = wpWelcome then
    if MsgBox('Отменить установку?',mbInformation, MB_YESNO)= IDYES then
    WizardForm.CancelButton.Click;
  Result := True;
end;

Не везде сработает корректно, нужно пробовать

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 12-02-2020 в 04:05.

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

Отправлено: 03:59, 12-02-2020 | #554


Аватара для habib2302

Ветеран


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

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


Gnom_aka_Lexander, Вы не правильно поняли.
Цитата:
Хочу, чтобы при нажатии кнопки нет на msgbox'е инсталлятор завершил работу, но не через task kill, а чтобы была полная имитация кнопки отмены.
Я имел ввиду про этот
MsgBox
Код: Выделить весь код
if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию {#Name}. Продолжить?', mbError, MB_YESNO) = IDYES then

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


Отправлено: 13:00, 12-02-2020 | #555


Аватара для Gnom_aka_Lexander

Ветеран


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

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


habib2302, Ну так.
Код: Выделить весь код
then
    WizardForm.CancelButton.Click;
вызывает действие нажатия кнопки отмены. Далее если нужно, можно взять из примеров скрытие запроса подтверждения отмены, если не хочется лишних диалогов. Таким образом отмена происходит полностью штатно.
Кнопка Нет - IDNO
Я так понимаю, нужен готовый код такого вида?
Код: Выделить весь код
function UninstallMyApp(): Boolean;
var
    Buff: String;
    i, id : Integer;

begin
    Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
    if not Result then Result := not FileExists(RemoveQuotes(Buff));
    if not Result then id := MsgBox('Перед установкой необходимо удалить предыдущую версию {#Name}. Продолжить?', mbError, MB_YESNO);
    case id of
      IDYES:  try
                  Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
              finally
                  Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
                  if not Result then MsgBox('Удаление завершилось неудачей!', mbError, MB_OK);
              end;
      IDNO:  WizardForm.CancelButton.Click;
    end;
end;

Меня не было целых 8 лет, а так ничего не изменилось. указать направление помощью не считается, только готовое, только хардкор )

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 12-02-2020 в 13:51.

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

Отправлено: 13:38, 12-02-2020 | #556


Аватара для habib2302

Ветеран


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

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


Gnom_aka_Lexander, пример с моим кодом можно

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


Отправлено: 13:42, 12-02-2020 | #557


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Вложения
Тип файла: 7z GetSid.7z
(5.1 Kb, 7 просмотров)
Тип файла: 7z IsRegistryFind.7z
(686.9 Kb, 10 просмотров)

Inno Setup registry finder

Накорябал уже сто лет тому назад, да вот все как-то недосуг выложить было. Программа делает поиск в реестре по заданной маске и форматирует найденное в записи, пригодные для использования в скрипте, с конвертацией путей в переменные Inno Setup, алгоритм конвертации предоставил Serega. По сути, это GUI для его конвертера с добавленной возможностью автоматизировать поиск нужных ключей.
Так-же есть возможность указать путь, который нужно заменить на {app}.
Так-же прилагаю библиотеку по поиску Sid. Не помню зачем, но она вроде нужна )

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 12-02-2020 в 16:35.

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

Отправлено: 15:02, 12-02-2020 | #558


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


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

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


а можно из секции [code] запустить службу, например службу Центр обновления Windows?

Отправлено: 13:02, 15-02-2020 | #559


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


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

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


Люди помогите решить проблему. Что то я никак не вкурю, как удалить из строки символ? Рабочего примера найти не могу, и догнать не могу. Может я не там копаю, может мне не из строки удалять нужно? Подскажите, а то опять сутку убил а решения все нету. Вот пример берет из реестра путь для установки.
CODE
Код: Выделить весь код
[Setup]
AppName=TEST 
AppVerName=TEST 
OutputDir=userdocs:..\Desktop
CreateAppDir=no
Uninstallable=no

[*Code]
function InitializeSetup(): Boolean;
  begin
      if FileExists(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE,Path}')) then
    Result:= True
  else
    MsgBox('Установка Прекращена:'#13'Файл не найден!', mbCriticalError, MB_OK);
end;


Path=C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE;
но в реестре, в конце пути стоит символ {;} как его удалить? что бы было вот так
Path=C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE
а еще лутше так
C:\Program Files (x86)\Internet Explorer
тоисть удалить все что идет посте последнего \

Последний раз редактировалось Beavimo, 17-02-2020 в 22:58.


Отправлено: 22:41, 17-02-2020 | #560



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




 
Переход