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

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

 

Аватара для Dodakaedr

Ветеран


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

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


Цитата ErikPshat:
Эмм, что-то у меня это равенство ни при каких условиях не выполняется, хоть есть нестандартные символы, хоть нет. »
На какой символ проверяете?
Цитата ErikPshat:
Я ещё отдельно выставил 2 разные переменные в первой и второй проверке »
они не могли испортить функцию?
Попробуйте еще так:
Скрытый текст
Код: Выделить весь код
[Setup]
AppName=App
AppverName=App v1.0
DefaultDirName={pf}\App
OutputDir=.

[Code]
var
  errorcode: integer;

function IsAnsiOrSym(S: String; var ResultError: integer): Boolean;
var
  n: string;
  i,j: integer;
begin
  if CompareStr(AnsiUppercase(S), Uppercase(S)) = 0 then
  if CompareStr(Lowercase(S), AnsiLowercase(S)) = 0 then Result := True else Result := False;
  if not result then ResultError := 1;
  if result then
  begin
    n := '!"@#$%^&*';
    for i:=1 to length(s) do
    for j:=1 to length(n) do
    begin
      if s[i] = n[j] then
      begin
        Result := False;
        ResultError := 2;
        exit;
      end;
    end;
    end;
end;

procedure InitializeWizard();
begin
  if not (IsAnsiOrSym(ExpandConstant('{src}'), errorcode)) then if (errorcode=1) then MsgBox('Найдена кириллица в: '+ExpandConstant('{src}'),mbError,MB_OK);
  if not (IsAnsiOrSym(ExpandConstant('{src}'), errorcode)) then if (errorcode=2) then MsgBox('Найден спецсимвол в: '+ExpandConstant('{src}'),mbError,MB_OK);
end;

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


Последний раз редактировалось Dodakaedr, 30-04-2019 в 19:36.

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

Отправлено: 18:46, 30-04-2019 | #321



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

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


Аватара для ErikPshat

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


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

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


Цитата Dodakaedr:
На какой символ проверяете?
они не могли испортить функцию? »
Вполне может быть я что-то не так подхимичил. Вроде бы по логике всё так же должно было остаться.
Я разделил ту функцию на 2 отдельные функции. Ну там переменную "n" поменял на "m", т.к. первая у меня уже используется в коде.
Вот моя химия:
Код: Выделить весь код
function IsAnsi(S: String): Boolean;
begin if CompareStr(AnsiUppercase(S), Uppercase(S)) = 0 then
begin if CompareStr(Lowercase(S), AnsiLowercase(S)) = 0 then Result := True; end; end;

function IsSymb(S: String): Boolean; var m: String; i, j: Integer;
begin
  m := '!"@#$%^&*';
  for i:=1 to length(S) do
  for j:=1 to length(m) do
  begin if S[i] = m[j] then Result := False; end;
end;

procedure InitializeWizard();
if not(IsAnsi(ExpandConstant('{src}'))) then begin MsgBox(ExpandConstant('{cm:CirillicPATH}')+#10#10+ExpandConstant('{src}'), mbError, MB_OK);Exit;end;
if not(IsSymb(ExpandConstant('{src}'))) then begin MsgBox(ExpandConstant('{cm:SimbolsPATH}')+#10#10+ExpandConstant('{src}'), mbError, MB_OK);Exit;end;

Проверил ваш код. Всё отлично работает! Из функции exit; перенёс в исполняемый код, т.к. мне нужно, чтобы после оповещения, окно закрывалось и прекращало работу.
Спасибо большое!!!

Последний раз редактировалось ErikPshat, 30-04-2019 в 22:20.


Отправлено: 20:50, 30-04-2019 | #322


Аватара для vk_k14m@vk

Старожил


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

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


Народ, у меня вопрос по секции [UninstallDelete]. При удалении приложения нужно так же удалять конфиг приложения. Но можно ли сделать, что б уинсталлер просил подтверждение при удалении?

-------
Взялся отвечать, отвечай до конца!


Отправлено: 20:28, 08-06-2019 | #323


Аватара для Dodakaedr

Ветеран


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

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


Цитата vk_k14m@vk:
можно ли сделать, что б уинсталлер просил подтверждение при удалении? »
Код: Выделить весь код
[Setup]
AppName=App
AppverName=App v1.0
DefaultDirName={pf}\App
OutputDir=.

[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
    if MsgBox('Также удалить настройки программы?', mbConfirmation, MB_YESNO)=IDYES then DeleteFile(ExpandConstant('{commonappdata}\Proga\config.cfg'));
end;

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

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

Отправлено: 21:58, 08-06-2019 | #324


Ветеран


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

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


Dodakaedr, лучше бы вопрос задавался в самом начале процесса деинсталляции, а не в конце (если я правильно понял логику кода).
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:56, 08-06-2019 | #325


Аватара для vk_k14m@vk

Старожил


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

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


Цитата Iska:
лучше бы вопрос задавался в самом начале процесса деинсталляции, а не в конце (если я правильно понял логику кода). »
Мне нужно что б удалилось само приложение, и в конце деинсталлер уточнял, удалять ли и конфиг тоже. Или оставить...

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

Изменил код на как мне казалось рабочий вариант.
[code]
Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then
    if MsgBox('Также удалить настройки программы?', mbConfirmation, MB_YESNO)=IDYES then DelTree('{app}\config', True, True, True);
end;
Но нет. Установщик спросил удалять или нет, и при согласии файлы остались на месте. Что я сделал не так?

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 09-06-2019 в 00:05.


Отправлено: 23:30, 08-06-2019 | #326


Аватара для Dodakaedr

Ветеран


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

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


Цитата vk_k14m@vk:
И наверно нужно было уточнять, что конфиг не один а несколько »
Уточняйте все и сразу: какого рода ваши конфиги, маска файлов подойдет?

Цитата Iska:
лучше бы вопрос задавался в самом начале процесса деинсталляции »
Если пользователь удаляет прогу, то ему, я думаю, все равно где задавать вопрос.

И судя по ответу
Цитата vk_k14m@vk:
Мне нужно что б удалилось само приложение, и в конце деинсталлер уточнял »
я предоставил пример что требовалось. И сейчас будем пол страницы узнавать подробности конфигов.

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


Отправлено: 23:49, 08-06-2019 | #327


Ветеран


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

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


Цитата Dodakaedr:
Если пользователь удаляет прогу, то ему, я думаю, все равно где задавать вопрос. »
Сугубо с точки зрения эргономики — в начале, ибо в противном случае на мелких (по количеству файлов) инсталляциях навряд ли время под процесс основной деинсталляции будет особо продолжительным, а вот на крупных — данная пауза будет заметно раздражать.

Цитата Dodakaedr:
И судя по ответу я предоставил пример что требовалось. И сейчас будем пол страницы узнавать подробности конфигов. »
Ну, это как обычно .

Отправлено: 00:46, 09-06-2019 | #328


Аватара для vk_k14m@vk

Старожил


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

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


Цитата Dodakaedr:
Уточняйте все и сразу: какого рода ваши конфиги, маска файлов подойдет? »
3 маски нужно. Там конфиги трех разных расширений...

-------
Взялся отвечать, отвечай до конца!


Последний раз редактировалось vk_k14m@vk, 09-06-2019 в 01:10.


Отправлено: 00:51, 09-06-2019 | #329


Аватара для Dodakaedr

Ветеран


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

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


Цитата vk_k14m@vk:
Что я сделал не так? »
Указали не правильную константу.

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

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

Отправлено: 07:56, 09-06-2019 | #330



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




 
Переход