|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1269 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты 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
|
Профиль | Отправить PM | Цитировать Iska,
![]() ![]() ![]() |
Последний раз редактировалось Beavimo, 10-02-2020 в 02:15. Отправлено: 02:01, 10-02-2020 | #551 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата Beavimo:
Цитата Beavimo:
![]() Простота - Это высшее достижение в искусстве. |
||
------- Последний раз редактировалось Nordek, 10-02-2020 в 11:51. Отправлено: 11:46, 10-02-2020 | #552 |
Ветеран Сообщения: 861
|
Профиль | Отправить 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 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Последний раз редактировалось Gnom_aka_Lexander, 12-02-2020 в 04:05. Отправлено: 03:59, 12-02-2020 | #554 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать Gnom_aka_Lexander, Вы не правильно поняли.
Цитата:
|
|
------- Отправлено: 13:00, 12-02-2020 | #555 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать habib2302, Ну так.
вызывает действие нажатия кнопки отмены. Далее если нужно, можно взять из примеров скрытие запроса подтверждения отмены, если не хочется лишних диалогов. Таким образом отмена происходит полностью штатно.
Кнопка Нет - 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 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать Gnom_aka_Lexander, пример с моим кодом можно
|
------- Отправлено: 13:42, 12-02-2020 | #557 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать 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
|
Профиль | Отправить PM | Цитировать а можно из секции [code] запустить службу, например службу Центр обновления Windows?
|
Отправлено: 13:02, 15-02-2020 | #559 |
Пользователь Сообщения: 62
|
Профиль | Отправить 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 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|