|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме 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 |
Ветеран Сообщения: 855
|
Профиль | Отправить PM | Цитировать Доброе время суток. Необходимо удалить настройки проги во время деинсталляции через код с выводом MsgBox, но проблема в том, что в пути к настройкам есть символ "одинарная кавычка" или ' . Как можно обойти ошибку из-за этой кавычки? Пример Friday's program
[Code] procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin case CurUninstallStep of usPostUninstall: if DirExists(AddBackslash(ExpandConstant('{userappdata}')) + 'Friday's program') then begin if MsgBoxEx(0, 'Удалить настройки программы', 'Удаление настроек', $00000004 or $00000020, 0, 0) = IDYES then DelTree(AddBackslash(ExpandConstant('{userappdata}')) + 'Friday's program', True, True, True); end; end; end; |
------- Отправлено: 17:03, 21-12-2019 | #431 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать habib2302, использовать "" для " и '' для ', то бишь удваивать кавычку в строке.
|
Отправлено: 18:02, 21-12-2019 | #432 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата Beavimo:
1. По коду скрипта: Скрытый текст
function InitializeSetup(): Boolean; var FileName: String; SHA1: String; begin FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Code,PATH_APPLICATION}') +'\Test.exe'; это присваивание не несёт полезной нагрузки: Result := FileExists(FileName); если файла нет по этому пути, будет ошибка (пример обработки здесь был): SHA1 := GetSHA1OfFile(FileName); if SHA1 = 'ad030d5606a2dcfa75ebc425a70730f23e7f07ab' then // буквы должны быть маленькими begin Result := MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES; end выделенная зелёным часть не несёт полезной нагрузки, можно убрать: else begin end end; 2. Отступы - полезная штука для улучшения читаемости кодаю |
|
Отправлено: 00:08, 11-01-2020 | #433 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать iglezz
Зделал так, все работает, тока теперь при разных хеш, програма закрывается code
function InitializeSetup(): Boolean; var FileName: String; SHA1: String; begin FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Code,PATH_APPLICATION}') +'\Test.exe'; if Not FileExists(FileName) then begin MsgBox('Установка Прекращена' #13#13 'Установите сначала Программу!', mbCriticalError, MB_OK); Result := False; Exit; end; SHA1 := GetSHA1OfFile(FileName); if SHA1 = 'ad030d5606a2dcfa75ebc425a70730f23e7f07ab' then // буквы должны быть маленькими begin Result := MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES; end end; как его побороть? |
Последний раз редактировалось Beavimo, 11-01-2020 в 02:22. Отправлено: 01:36, 11-01-2020 | #434 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Beavimo, код оформляется тэгом «code». И уже потом его можно дополнительно обрамить тэгом «spoiler».
|
Отправлено: 02:09, 11-01-2020 | #435 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Beavimo, может я не в теме, но попробуйте так:
Скрытый текст
#define NeedSHA "ad030d5606a2dcfa75ebc425a70730f23e7f07ab" [Setup] AppName=My Application AppVersion=1.5 CreateAppDir=no [*Сode] function InitializeSetup: Boolean; var FileName: PAnsiChar; begin FileName:=ExpandConstant('{reg:HKLM\SOFTWARE\Code, PATH_APPLICATION}')+'\Test.exe'; if not FileExists(FileName) then begin MsgBox('Установка Прекращена' #13#13 'Установите сначала Программу!', mbCriticalError, MB_OK); Result:=False; end else begin if (GetSHA1OFFile(FileName) = Lowercase('{#NeedSHA}')) then Result:=MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES else Result:=MsgBox('Программы не совпадают!', mbCriticalError, MB_OK) <> IDOK; // если надо чтоб программа запускалось при не соответствии, сменить знак на "=" end; end; |
Последний раз редактировалось Nemko, 11-01-2020 в 15:39. Причина: Ошибка со спойлером Отправлено: 15:37, 11-01-2020 | #436 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 16:20, 11-01-2020 | #437 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Nordek:
|
|
Отправлено: 17:04, 11-01-2020 | #438 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:54, 11-01-2020 | #439 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:09, 11-01-2020 | #440 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|