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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 6]

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

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


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

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


Цитата Dodakaedr:
добавить программу в исключения брандмауэра windows? »
вот так можно
читать дальше »

[code]
[CustomMessages]
ru.FireWallAllow=Программа установки добавит %1 в исключения брандмауэра Windows на текущем профиле (%2). Хотите продолжить?
en.FireWallAllow=Setup will now add %1 to Windows Firewall as an authorized application for the current profile (%2). Do you want to continue?

ru.FireWallAllowOk=Программа установки добавила %1 в исключения брандмауэра Windows на текущем профиле.
en.FireWallAllowOk=Setup is now an authorized application %1 for the current profile

Код: Выделить весь код
const
   NET_FW_IP_VERSION_ANY = 2;
   NET_FW_SCOPE_ALL = 0;

procedure AddFirewall(Name,AppName:string);
var
  Firewall, Application: Variant;
begin

  if MsgBox(ExpandConstant('{cm:FireWallAllow,'+AppName+','+GetUserNameString+'}'), mbInformation, mb_YesNo) = idNo then
    Exit;

  { Create the main Windows Firewall COM Automation object }

  try
    Firewall := CreateOleObject('HNetCfg.FwMgr');
  except
    RaiseException('Please install Windows Firewall first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)');
  end;

  { Add the authorization }

  Application := CreateOleObject('HNetCfg.FwAuthorizedApplication');
  Application.Name := Name; //Название записи о разрешении
  Application.IPVersion := NET_FW_IP_VERSION_ANY;
  Application.ProcessImageFileName := AppName;//ExpandConstant('{srcexe}'); //Собственно программа
  Application.Scope := NET_FW_SCOPE_ALL;
  Application.Enabled := True;

  Firewall.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(Application);
  MsgBox(ExpandConstant('{cm:FireWallAllowOk,'+AppName+'}'), mbInformation, mb_Ok);

end;

function AddToFireWall(param:string):boolean;
begin
result:=false;
if IsComponentSelected('app1') then
  AddFirewall('App 1', ExpandConstant('{app}\app1.exe')); 
end;

[Run]
Filename:'';Flags: nowait; Check: AddToFireWall('setup')

Отправлено: 18:03, 27-02-2014 | #2391



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

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


Аватара для Dodakaedr

Ветеран


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

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


Shkutu, что-то ваш код не работает. Не выскакивает окошко и не добавляет.

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


Отправлено: 18:10, 27-02-2014 | #2392


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


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

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


Dodakaedr, у меня работает, выковыривала из рабочего скрипта. Может криво скопипастила, но что у вас не работает, надо смотреть уже на вашем коде.
А вообще посмотрите стандартный пример CodeAutomation.iis (в обычном инно входят в стандартный комплект, лежит в папке Examples).

Отправлено: 19:07, 27-02-2014 | #2393


Аватара для diman_21Ru

Старожил


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

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


Всем привет , как можно наложить на кнопки звуки , за ответ заранее благодарю .

Отправлено: 21:25, 27-02-2014 | #2394


Аватара для Ivan_009

Ветеран


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

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


Покажите пожалуйста пример блокировки наложенной через ботву кнопки при нехватке места на диске...

Заранее спасибо...

Отправлено: 22:01, 27-02-2014 | #2395


Ветеран


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

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


Цитата Dodakaedr:
Как добавить программу в исключения брандмауэра windows? »
Цитата Dodakaedr:
как это оформить в секции tasks? »
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program


[Files]
Source: MyProg.exe; DestDir: {app};


[Tasks]
Name: frexp; Description: Добавить исключение в брандмауэр Windows;


[code]
const
    NET_FW_SCOPE_ALL      = 0;
    NET_FW_IP_VERSION_ANY = 2;


procedure SetFirewallException(const AppName, FileName: String);
var
    FirewallObject: Variant;
    FirewallManager: Variant;
    FirewallProfile: Variant;
begin
    try
        FirewallObject := CreateOleObject('HNetCfg.FwAuthorizedApplication');
        FirewallObject.ProcessImageFileName := FileName;
        FirewallObject.Name := AppName;
        FirewallObject.Scope := NET_FW_SCOPE_ALL;
        FirewallObject.IpVersion := NET_FW_IP_VERSION_ANY;
        FirewallObject.Enabled := True;
        FirewallManager := CreateOleObject('HNetCfg.FwMgr');
        FirewallProfile := FirewallManager.LocalPolicy.CurrentProfile;
        FirewallProfile.AuthorizedApplications.Add(FirewallObject);
    except end;
end;


procedure RemoveFirewallException(const FileName: String );
var
    FirewallManager: Variant;
    FirewallProfile: Variant;
begin
    try
        FirewallManager := CreateOleObject('HNetCfg.FwMgr');
        FirewallProfile := FirewallManager.LocalPolicy.CurrentProfile;
        FireWallProfile.AuthorizedApplications.Remove(FileName);
    except end;
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssPostInstall: if IsTaskSelected('frexp') then SetFirewallException('My Program', ExpandConstant('{app}') + '\MyProg.exe');
    end;
end;


procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
    case CurUninstallStep of
        usPostUninstall: RemoveFirewallException(ExpandConstant('{app}') + '\MyProg.exe');
    end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:03, 27-02-2014 | #2396


Аватара для Ivan_009

Ветеран


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

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


diman_21Ru, Так:

Последний раз редактировалось Ivan_009, 26-03-2014 в 23:51.

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

Отправлено: 22:04, 27-02-2014 | #2397


Аватара для Dodakaedr

Ветеран


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

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


saurn, Огромное спасибо!!!

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


Отправлено: 22:26, 27-02-2014 | #2398


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


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

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


Цитата Nordek:
Всё пакуется нормально »
Странно.У меня нет.
Код: Выделить весь код
Source: "{app}\HD3_Data\Templates\{{Original}\patcher_x86 dump.txt"; DestDir: {app}\HD3_Data\Templates\{{Original}; MinVersion: 0.0,5.0; Flags: ignoreversion 
Source: "{app}\HD3_Data\Templates\{{Original}\patcher_x86 log.txt"; DestDir: {app}\HD3_Data\Templates\{{Original}; MinVersion: 0.0,5.0; Flags: ignoreversion 
Source: "{app}\HD3_Data\Templates\{{Original}\rmg.txt"; DestDir: {app}\HD3_Data\Templates\{{Original}; MinVersion: 0.0,5.0; Flags: ignoreversion
Объясняю ситуацию:есть Герои 3 HD их надо запаковать, но есть папка в которой хранятся оригинальные файлы , называется она {Original}.Выходит ошибка, т.к. эти скобки {} мешают правильно понять название папки.

Отправлено: 11:46, 28-02-2014 | #2399


Аватара для Debugger

Ветеран


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

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


Подскажите, а можно ли передать в функцию какой-либо параметр?
Чтото типа наподобие этого:
Код: Выделить весь код
[Components]
Name: "plugin"; Description: "plugin";
Name: "plugin\32-bit"; Description: "Plugin for productname v1.0"; Check: "checkversion32(10)"
Name: "plugin\64-bit"; Description: "plugin for productname v1.0"; Check: "checkversion64(10)"
Name: "plugin\32-bit"; Description: "Plugin for productname v2.0"; Check: "checkversion32(20)"
Name: "plugin\64-bit"; Description: "plugin for productname v2.0"; Check: "checkversion64(20)"
Name: "plugin\32-bit"; Description: "Plugin for productname v3.0"; Check: "checkversion32(30)"
Name: "plugin\64-bit"; Description: "plugin for productname v3.0"; Check: "checkversion64(30)"

[code]
function checkversion32(параметр): Boolean;
  begin
    Result := RegValueExists(HKLM, 'SOFTWARE\параметр\productname', 'version')    
  end;

function checkversion64(параметр): Boolean;
  begin
    Result := RegValueExists(HKLM64, 'SOFTWARE\параметр\productname', 'version')    
  end;

Отправлено: 12:11, 28-02-2014 | #2400



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход