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

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

 

Ветеран


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

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


Beavimo, на C/C++. Без .Net.

Отправлено: 18:48, 30-01-2020 | #491



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

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


Аватара для habib2302

Ветеран


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

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


Beavimo, AutoIt в помощь. Могу помочь если надо

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

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

Отправлено: 21:27, 30-01-2020 | #492


SHVtYW4=


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

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


Цитата web_form:
Font.Style:=[fsBold]; »
Всю эту строку, будет не жирный.

Или так:
Код: Выделить весь код
    Font.Style := [];



Код: Выделить весь код
fsBold      - Жирный
fsItalic    - Курсив
fsUnderline - Подчёрнкнутый
fsStrikeOut - Перечёркнутый
Можно оставить пустым:
Код: Выделить весь код
    Font.Style := [];
При необходимости можно добавить:
Код: Выделить весь код
    Font.Style := [fsItalic];
либо несколько через запятую:
Код: Выделить весь код
    Font.Style := [fsItalic, fsUnderline];

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


Последний раз редактировалось Nordek, 31-01-2020 в 15:47.


Отправлено: 15:39, 31-01-2020 | #493


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


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

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


Рабочий пример добавления в Брандмауэр Виндовс, если можна проверьте работоспособность на Виндовс 10
Скрытый текст
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep); var
  RC: Integer;
   SIn, SOut: String;
    begin
     if CurStep=ssInstall then
     begin 
    Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
   SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh',  SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
  SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
  RC: Integer;
   begin
    if CurUninstallStep=usUninstall then
   begin
  Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

Отправлено: 15:59, 31-01-2020 | #494


SHVtYW4=


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

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


Цитата Beavimo:
на Виндовс 10 »
Проверил - Работает.

Скрытый текст
При первичной установке добавляет во входящие и исходящие.

При повторной установке:
- Удаляет правила:
Цитата Beavimo:
Код: Выделить весь код
     if CurStep=ssInstall then
     begin 
    Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
»
затем добавляет:
Цитата Beavimo:
Код: Выделить весь код
   SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh',  SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
  SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
»
При деинсталляции:
Цитата Beavimo:
Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
  RC: Integer;
   begin
    if CurUninstallStep=usUninstall then
   begin
  Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
»
- Удаляет.

Далее:
Цитата Beavimo:
Код: Выделить весь код
SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SIn,'', SW_HIDE, ewWaitUntilTerminated, RC) SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
»
- Кавычки необходимы.


Итог:
Код: Выделить весь код
[Setup]
#define AppName "My Program" 
#define AppExeName "MyProg.exe"

[Code] 
procedure CurStepChanged(CurStep: TSetupStep); var
  RC: Integer;
   SIn, SOut: String;
    begin
     if CurStep=ssInstall then
     begin 
    Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="{#AppName}"','', SW_HIDE, ewWaitUntilTerminated, RC)
   SIn:='advfirewall firewall add rule name="{#AppName}" dir=in action=block program='+ExpandConstant('"{app}\{#AppExeName}"')+' enable=yes'; Exec('netsh',  SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
  SOut:='advfirewall firewall add rule name="{#AppName}" dir=out action=block program='+ExpandConstant('"{app}\{#AppExeName}"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
  RC: Integer;
   begin
    if CurUninstallStep=usUninstall then
   begin
  Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="{#AppName}"','', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

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


Отправлено: 17:24, 31-01-2020 | #495


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


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

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


Хто подскажет почему, вот так работает
CODE
Код: Выделить весь код
procedure InitializeWizard();
begin
  RegDeleteValue(HKEY_CURRENT_USER, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

а вот так не работает
CODE
Код: Выделить весь код
procedure InitializeWizard();
begin
  RegDeleteValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

то есть в курент усер удаляет значение, а в локал лезет в Wow6432Node, как удалить значение в HKEY_LOCAL_MACHINE\SOFTWARE?

Отправлено: 19:54, 31-01-2020 | #496


SHVtYW4=


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

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


Цитата Beavimo:
а в локал лезет в Wow6432Node, как удалить значение в HKEY_LOCAL_MACHINE\SOFTWARE? »
Вернитесь чуть назад или прочитайте справку.
Вам станет понятно:
Код: Выделить весь код
[Code]
procedure InitializeWizard();
begin
  RegDeleteValue(HKLM64, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

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

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

Отправлено: 20:29, 31-01-2020 | #497


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


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

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


спасибо всем кто помог.. есть еще один вопрос как удалить файл при установке
CODE
]
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
  begin                                                   
   if CurStep = ssInstall then 
  DeleteFile(ExpandConstant('C:\run.pid')); 
end;

Это работает. А как удалить файл по пути USER\AppData\Roaming\TEST\run.pid?

Отправлено: 21:44, 31-01-2020 | #498


Аватара для nik1967

Старожил


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

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


Цитата Beavimo:
А как удалить файл по пути USER\AppData\Roaming\TEST\run.pid? »
Почитать справку по Inno?
Скрытый текст

Константы специальных папок

{userappdata} & {commonappdata}
Путь к папке с данными приложения (Application Data).

Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
  case CurStep of
    ssInstall: DeleteFile(ExpandConstant('{userappdata}')+'\TEST\run.pid');
  end;
end;

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 01-02-2020 в 09:49.

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

Отправлено: 21:59, 31-01-2020 | #499


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


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

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


nik1967, что {userappdata}\Roaming\Roaming\TEST\run.pid что {commonappdata}\Roaming\Roaming\TEST\run.pid файл run.pid как был так и остался на своем месте.
И так тоже ниче не удаляется
Удаление Файла
Код: Выделить весь код
[InstallDelete]
Type: files; Name: "{userappdata}\Roaming\TEST\run.pid"


Файл обычный, без каких либо атрибутов.

Последний раз редактировалось Beavimo, 31-01-2020 в 22:30.


Отправлено: 22:15, 31-01-2020 | #500



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




 
Переход