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

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

 

Аватара для habib2302

Ветеран


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

Профиль | Отправить 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
Благодарности: 192

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


habib2302, использовать "" для " и '' для ', то бишь удваивать кавычку в строке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:02, 21-12-2019 | #432


Старожил


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

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить 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
Благодарности: 8086

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


Beavimo, код оформляется тэгом «code». И уже потом его можно дополнительно обрамить тэгом «spoiler».

Отправлено: 02:09, 11-01-2020 | #435


Аватара для Nemko

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


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

Профиль | Отправить 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
Благодарности: 1273

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


Цитата Iska:
код оформляется тэгом «code». »
В дополнение.

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


Отправлено: 16:20, 11-01-2020 | #437


Ветеран


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

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


Цитата Nordek:
В дополнение. »
Nordek, завели же тэг [noparse] специально для таких случаев.

Отправлено: 17:04, 11-01-2020 | #438


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


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

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


Nemko, спасибо, тока как убрать предупреждение о несовпадении сум, что бы сразу устанавливалась прога
Код: Выделить весь код
  else Result:=MsgBox('Программы не совпадают!', mbCriticalError, MB_OK) = IDOK; // если надо чтоб программа запускалось при не соответствии, сменить знак на "="

Отправлено: 20:54, 11-01-2020 | #439


SHVtYW4=


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

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


Iska,
Всё куда проще


Таким образом [color=none][/color] подставляется автоматически:
[Code][color=none][[/color]Code]
procedure RedesignWizardForm;
begin
with
WizardForm.CancelButton do
begin
Left := ScaleX(364);
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
end;
[/Code]

Итог:
Код: Выделить весь код
[Code]
procedure RedesignWizardForm;
begin
  with WizardForm.CancelButton do
  begin
    Left := ScaleX(364);
  end;
end;
procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

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


Отправлено: 21:09, 11-01-2020 | #440



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




 
Переход