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

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата Sollar:
подскажите как уместить 5 полей на странице либо добавить скроллбар? »
да он вроде как сам появляется когда нужен, и на самолепных страницах тоже
Цитата Sollar:
возможно ли исходя из списка компонентов и типов в ini файле распределять разные задачи-компоненты по типам при инсталлировании?
дайте ссылку, пример, где происходит работа с ини файлом »
да возможно, см справку в инно по секции [INI], она не кусается

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 19:10, 07-09-2011 | #3011



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

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


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

Ветеран


Contributor


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

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


Цитата Gugle:
данный скрипт не выявляет всех интерфейсов, представленных в системе »
Gugle, в WQL запросе есть условие WHERE IPEnabled=TRUE, т.е. поиск ведется активных интерфейсов, отключенные отсеиваются. Условие можно убрать из запроса, но тогда в массив попадет все, включая минипорты и адаптеры всех мастей.
Цитата Gugle:
выбрать те, в которых встречается слово "Ethernet" и "Сетевая" »
Gugle, тогда условие WHERE IPEnabled=TRUE замените на WHERE Description LIKE "%Ethernet%" OR Description LIKE "%Сетевая%", но это лишнее, имена интерфейсов получите, но IP, MAC отключенных нет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:39, 07-09-2011 | #3012


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


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

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


Цитата R.i.m.s.k.y.:
Цитата Sollar:
подскажите как уместить 5 полей на странице либо добавить скроллбар? »
да он вроде как сам появляется когда нужен, и на самолепных страницах тоже »
а ты попробуй, не появляется скролла

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

Отправлено: 09:26, 08-09-2011 | #3013


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


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

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


Цитата El Sanchez:
Gugle, тогда условие WHERE IPEnabled=TRUE замените на WHERE Description LIKE "%Ethernet%" OR Description LIKE "%Сетевая%", но это лишнее, имена интерфейсов получите, но IP, MAC отключенных нет. »
Если убрать условие WHERE IPEnabled=TRUE, то туда действительно попадут адаптеры всех мастей. Это мне не надо.
Усли поставить условие WHERE Description LIKE "%Ethernet%" OR Description LIKE "%Сетевая%", отсеиваются (названия из картинки):
4_port_01
4_port_02
4_port_03
4_port_04
LAN_BASEBOARD_1
LAN_BASEBOARD_2
Local Area connection
Что бы они туда попали, надо в условие внести какое нить слово/фразу, которая есть в названии. Я думаю, что сами винды определяют адаптеры, которые надо отобразить (на картинке это Network Connections и Server Manager), немного по другому, а не через поле Description. Я так и не смогу выяснить как это делается. (((

Вот и спрашиваю на форуме, вдруг кто то сталкивался с проблемой, а может быть кто то просто посмотрев на "поля таблицы", определит как это можно сделать.
Мне надо, чтобы в установщике отображался то же самый список, что и в Network Connections / Server Manager. Очень надо. Пока я сам не могу догнаться как это сделать. То ли глуповат, то ли руки не так заточены (а может и все сразу).

Кстати, VPN сетевые адаптеры у меня так и не попали в список.

Последний раз редактировалось Gugle, 08-09-2011 в 18:00.


Отправлено: 16:03, 08-09-2011 | #3014


Аватара для kindza811

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


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

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


как мне сделать такой инсталлятор? подскажите,вот мой скрипт http://rghost.ru/20901371

-------
R.G.Torrent-Games


Последний раз редактировалось kindza811, 08-09-2011 в 21:35.


Отправлено: 21:28, 08-09-2011 | #3015


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


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

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


Ребята а есть ли в Inno Setup возможность записать значение в реестр следующим образом:

Допустим устанавливаем программу на диск С в папку Test, а в реестр нужно занести два значения

1-е это буква диска C
2-е это название папки в которую установили программу Test

[HKEY_LOCAL_MACHINE\SOFTWARE\Test program]
"Path"="C:\\"
"Directory"="Test"

Я знаю что переменная {app} хранит путь установки, а есть ли другая переменная которая хранит букву диска и название директории

Отправлено: 22:11, 08-09-2011 | #3016


Ветеран


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

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


kindza811 во первых выкладывай весь скрипт,во вторых есть много таких инсталяторов к примеру закос под шепарда,ну а в третих можно сделать все самому только тебе нужно будет:STS
читать дальше »
Модуль панели статуса для Inno Setup. Создает панель статуса в выбранном месте, для этого вам потребуется прописать всего несколько функций. Для отрисовки панели используется botva2.dll. Модуль пока только на русском языке. Readme как и в предыдущем модуле нет, но есть несколько примеров использования.

bass.dll и скрипт для растяжения изображения на весь экран
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:21, 08-09-2011 | #3017


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

Ветеран


Contributor


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

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


Цитата Gugle:
Мне надо, чтобы в установщике отображался то же самый список, что и в Network Connections / Server Manager »
Gugle, переделал предыдущий скрипт, пришлось добавить еще класс Win32_NetworkAdapter:
Код: Выделить весь код
[code]
type
  IP_ADDR_INFO = array of record
  Name: String;
  IPv4: String;
  IPv6: String;
  MAC: String;
end;

function GetLocalIP(var IPAddrInfo: IP_ADDR_INFO): Boolean;
var
  objSWbemLocator, objSWbemServices, objSWbemObjectSet, objSWbemObject, objRegExp, objRegExpMatches: Variant;
  IndexCount, i: Byte;
  strBuf, ptrnIPv4, ptrnIPv6: String;
begin
  try
    objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
    objRegExp := CreateOleObject('VBScript.RegExp');
  except
    ShowExceptionMessage;
    Exit;
  end;
  ptrnIPv4 := '(\d{1,3}[.]){3}\d{1,3}'; //IPv4 regexp
  ptrnIPv6 := //IPv6 regexp
    '(([0-9a-fA-F]{1,4}:){1,1}(:[0-9a-fA-F]{1,4}){1,6})|(([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5})|' +
    '(([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4})|//(([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3})|' +
    '(([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2})|(([0-9a-fA-F]{1,4}:){1,6}(:[0-9a-fA-F]{1,4}){1,1})|' +
    '((([0-9a-fA-F]{1,4}:){1,7}|:):)|(:(:[0-9a-fA-F]{1,4}){1,7})|(((([0-9a-fA-F]{1,4}:){6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}))|' +
    '((([0-9a-fA-F]{1,4}:){5}[0-9a-fA-F]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}))|' +
    '(([0-9a-fA-F]{1,4}:){5}:[0-9a-fA-F]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|' +
    '(([0-9a-fA-F]{1,4}:){1,1}(:[0-9a-fA-F]{1,4}){1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|' +
    '(([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,3}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|' +
    '(([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,2}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})';

  objSWbemServices := objSWbemLocator.ConnectServer();
  objSWbemServices.Security_.ImpersonationLevel := 3;
  IndexCount := objSWbemServices.ExecQuery('SELECT * FROM Win32_NetworkAdapter').Count;
  objSWbemObjectSet := objSWbemServices.ExecQuery('SELECT Name,MACAddress FROM Win32_NetworkAdapter WHERE NetConnectionID!=NULL');

  for i := 1 to IndexCount do
  try
    //check object in collection
    objSWbemObjectSet.Item('Win32_NetworkAdapter.DeviceID="' + IntToStr(i) + '"').GetObjectText_;
    strBuf := objSWbemServices.Get('Win32_NetworkAdapterConfiguration.Index=' + IntToStr(i)).GetObjectText_;
    SetArrayLength(IPAddrInfo, GetArrayLength(IPAddrInfo)+1);
    //Name
    IPAddrInfo[GetArrayLength(IPAddrInfo)-1].Name := objSWbemObjectSet.Item('Win32_NetworkAdapter.DeviceID="' + IntToStr(i) + '"').Properties_.Item('Name').Value;
    //IPv4 address
    objRegExp.Pattern := ptrnIPv4;
    if objRegExp.Test(strBuf) then
    begin
      objRegExpMatches := objRegExp.Execute(strBuf);
      IPAddrInfo[GetArrayLength(IPAddrInfo)-1].IPv4 := objRegExpMatches.Item[0].Value;
    end;
    //IPv6 address
    objRegExp.Pattern := ptrnIPv6;
    if objRegExp.Test(strBuf) then
    begin
      objRegExpMatches := objRegExp.Execute(strBuf);
      IPAddrInfo[GetArrayLength(IPAddrInfo)-1].IPv6 := objRegExpMatches.Item[0].Value;
    end;
    //MAC
    IPAddrInfo[GetArrayLength(IPAddrInfo)-1].MAC := objSWbemObjectSet.Item('Win32_NetworkAdapter.DeviceID="' + IntToStr(i) + '"').Properties_.Item('MACAddress').Value;
  except
  end;
  Result := (GetArrayLength(IPAddrInfo) > 0);
end;

procedure InitializeWizard();
var
  i: Byte;
  arr: IP_ADDR_INFO;
begin
if GetLocalIP(arr) then for i := 0 to GetArrayLength(arr)-1 do
  MsgBox(
    'Name: ' + arr[i].Name + #13#10 +
    'IPv4: ' + arr[i].IPv4 + #13#10 +
    'IPv6: ' + arr[i].IPv6 + #13#10 +
    'MAC: ' + arr[i].MAC, mbInformation, MB_OK);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:53, 08-09-2011 | #3018


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


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

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


С ini более-менее разобрался, все равно не понятно с зависимыми задачами, но это сейчас неважно
Интересует, возможно ли создание циклов в секции Types?
Можно ли ее заменить полностью функцией из кода? {code:gets} А не только Name: и Description: ?

Существует ли функция для определения количества секций в INI файле? Если нет, то как их можно подсчитать?

вот примерно то что я хочу сделать
Код: Выделить весь код
function InitializeSetup(): Boolean;
begin
   for I := 1 to [количество секций в ini-файле] do 
begin
str:='org'+inttostr(i);
org[i] := GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
if GetIniString(str, 'ex1', 'Error', 'C:\временная\example.ini') = '1' then
    s1 :=s1 +' ' + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
 if GetIniString(str, 'ex2', 'Error', 'C:\временная\example.ini') = '1' then
    s2 :=s2 +' ' + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
end;
  Result := True;
end;
а затем в цикле вставить переменную org[i] в секцию types
[Types]
for i := 1 to [количество секций в ini-файле] do
Name: {code:gets|org[i]}; Description: {code:gets|org[i]}

Отправлено: 10:40, 09-09-2011 | #3019


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

Ветеран


Contributor


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

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


Цитата Polsta:
Допустим устанавливаем программу на диск С в папку Test, а в реестр нужно занести два значения
1-е это буква диска C
2-е это название папки в которую установили программу Test
[HKEY_LOCAL_MACHINE\SOFTWARE\Test program]
"Path"="C:\\"
"Directory"="Test" »
Polsta,
Код: Выделить весь код
[Registry]
Root: HKLM; Subkey: "Software\Test program"; ValueType: string; ValueName: Path; ValueData: {drive:{app}}\
Root: HKLM; Subkey: "Software\Test program"; ValueType: string; ValueName: Directory; ValueData: {code:ExtractFileName|{app}}

Отправлено: 13:13, 09-09-2011 | #3020



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход