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

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

 

Аватара для filehome

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


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

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


Помогите пожалуйста!
Есть файл set.ini(он идет в комплект с инсталлятором) -> его содержимое
[files]

a1=название файла.exe
a2=название файла.exe
a3=название файла.exe
так до 30.

Задача нужно название всех фалов вывести в ComponentSelected + сделать чтобы можно было выбрать один или несколько файлов из списка и установить т.к неудобно постоянна изменять и собирать инсталлятор.
Спасибо за помощь!
Как это сделать не знаю.

Отправлено: 03:46, 12-10-2011 | #3531



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

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


Аватара для No4noylis

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


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

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


valyok666, А нельзя ли для этой твоей новой кнопочки поставить выполнение такой процедуры:
Код: Выделить весь код
procedure DirBrowsebuttonClick(Sender: TObject);
begin
WizardForm.DirBrowseButton.Click;
end;
BigBoo, это в таск-листе как я понимаю? Возможно поможет, если к этим задачам добавить GroupDescription: " " с пустым именем???

-------
Нет ничего невозможного...

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

Отправлено: 09:24, 12-10-2011 | #3532


Аватара для BigBoo

Старожил


Автор проектов


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

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


No4noylis, спасибо, помогло. Так работает:
Код: Выделить весь код
[Tasks]
Name: "desktopicon"; Description: "Добавить иконку на &Рабочий стол"; GroupDescription: " "; MinVersion: 4.1,4.0;
Name: "quicklaunchicon"; Description: "Добавить иконку на &Панель быстрого запуска"; GroupDescription: " "; MinVersion: 4.1,4.0; Flags: unchecked
Name: "associate"; Description: "&Ассоциировать .iso файл с UltraISO"; MinVersion: 4.1,4.0;
Name: "isodrive"; Description: "Установить ISO CD/DVD эмулятор (ISODrive)"; MinVersion: 4.1,4.0; Flags: unchecked

Отправлено: 10:33, 12-10-2011 | #3533


Аватара для BigBoo

Старожил


Автор проектов


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

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


Можно ли сделать так, чтобы окно финиша установки с кнопкой "Завершить" автозакрывалось, скажем через 10с., к примеру, как в 7z SFX с помощью префикса "fm10:"?

Отправлено: 12:57, 12-10-2011 | #3534


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


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

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


Есть библиотка, которая зависит от установленной в системе WinPcap.exe. Winpcap копирует 4 библиотеки + устанавливает драйвер.

Мой код:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: ifList.dll; Flags: dontcopy

[*code] //тут нет звездочки
type
  mas = record
  num: Integer;
  name: PAnsiChar;
  IPv4: PAnsiChar;
  IPv6: PAnsiChar;
  description: PAnsiChar;
  
end;

function getT(): Integer;
  external 'getT@files:ifList.dll stdcall';
function getV(d: Integer): mas;
  external 'getV@files:ifList.dll stdcall';

PROCEDURE InitializeWizard;
BEGIN
  
END;

FUNCTION NextButtonClick(CurPageID: Integer): Boolean;
VAR
 m: mas;
 i: Byte;
  
BEGIN
  for i := 1 to getT() do
  begin
    m := getV(i);
    MsgBox('num= ' + IntToStr(m.num) + #13#10 
         + 'name= ' + String(m.name) + #13#10 
         + 'IPv4= ' + String(m.IPv4) + #13#10 
         + 'IPv6= ' + String(m.IPv6) + #13#10 
         + 'description= ' + String(m.description) + #13#10 
         , mbInformation, MB_OK);
  end;
        
  Result := True;
END;

Ничего необычного. Если winpcap установлена в системе, то установщик работает коректно, если нет, то выдает ошибку:
Код: Выделить весь код
Runtime Error (at -1:0):
Cannot Import dll: C:\...бла...\ifList.dll
Не импортируется моя библиотека. Как можно отловить эту ошибку и при ее срабатывании запустить тихую установку winpcap?

Отправлено: 16:22, 12-10-2011 | #3535


Аватара для volk1234

Старовер


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

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


Цитата VASYAKRN:
подскажите сейчас и уберу а потом могу зогегистрируватса под другим именем »
И получите бан. А также мое персональное внимание к Вам.
Изучите правила конференции.

-------

Ю-ху!

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

Отправлено: 16:26, 12-10-2011 | #3536


Аватара для valyok666

Старожил


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

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


Gugle, кинь на ргхост я посмотрю

-------
Салтыков-Щедрин: "А надо учиться, учиться, учиться"


Отправлено: 16:32, 12-10-2011 | #3537


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

Ветеран


Contributor


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

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


Цитата Gugle:
Не импортируется моя библиотека »
Gugle, ваша библиотека зависит от wpcap.dll/packet.dll, которые должны находиться в месте, где система сможет их обнаружить (например, при установке wpcap они копируются в system32). При вызове функции из вашей библиотеки система не находит зависимые dll и вот так грязно выругается. Кстати, попробуйте вручную скопировать wpcap.dll/packet.dll в system32, не устанавливая wpcap, и запустить скрипт. Если все гуд, то попробуйте объявить функции так:
читать дальше »

Код: Выделить весь код
[Files]
Source: ifList.dll; Flags: dontcopy
Source: wpcap.dll; Flags: dontcopy
Source: packet.dll; Flags: dontcopy

[code]
function getT(): Integer;
  external 'getT@files:ifList.dll,wpcap.dll stdcall loadwithalteredsearchpath';
function getV(d: Integer): mas;
  external 'getV@files:ifList.dll,wpcap.dll stdcall loadwithalteredsearchpath';

Если нет, то измените функцию NextButtonClick:
читать дальше »

Код: Выделить весь код
[code]
Function NextButtonClick(CurPageID: Integer): Boolean;
Var
 m: mas;
 i: Byte;
  
begin
  Result := True;
  if CurPageID = какая-нибудь страница then
  try
    for i := 1 to getT() do
    begin
      m := getV(i);
      MsgBox('num= ' + IntToStr(m.num) + #13#10 
         + 'name= ' + String(m.name) + #13#10 
         + 'IPv4= ' + String(m.IPv4) + #13#10 
         + 'IPv6= ' + String(m.IPv6) + #13#10 
         + 'description= ' + String(m.description) + #13#10 
         , mbInformation, MB_OK);
    end;
  except
    тут установка wpcap
    Result := False;
  end;
end;

Отправлено: 18:03, 12-10-2011 | #3538


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


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

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


Цитата El Sanchez:
Gugle, ваша библиотека зависит от wpcap.dll/packet.dll, которые должны находиться в месте, где система сможет их обнаружить (например, при установке wpcap они копируются в system32). »
Там еще драйвер нужен, поэтому первый вариант не прокатывает. Нужна установка.
Цитата El Sanchez:
Если нет, то измените функцию NextButtonClick: »
блок:
Код: Выделить весь код
try
//...
except
//...
end;
Не помогает. Ощущение, что до него даже не доходит выполнение скрипта.

Отправлено: 11:02, 13-10-2011 | #3539


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

Ветеран


Contributor


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

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


Цитата Gugle:
Там еще драйвер нужен, поэтому первый вариант не прокатывает. Нужна установка »
Gugle, да, нужен. Устанавливаю драйвер вручную - dll-ка интерфейсы не выдает. Пробуйте так:
читать дальше »

Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: ifList.dll; Flags: dontcopy

[code]
const
	SERVICE_QUERY_CONFIG = $1;
	SC_MANAGER_ALL_ACCESS = $f003f;

type
    mas = record
        num: Integer;
        name,IPv4,IPv6,description: PAnsiChar;
    end;
    HANDLE = Cardinal;

function getT(): Integer; external 'getT@files:ifList.dll stdcall delayload';
function getV(d: Integer): mas; external 'getV@files:ifList.dll stdcall delayload';

function OpenSCManager(lpMachineName, lpDatabaseName: String; dwDesiredAccess: Cardinal): HANDLE;
external 'OpenSCManagerA@advapi32.dll stdcall';

function OpenService(hSCManager: HANDLE; lpServiceName: String; dwDesiredAccess: Cardinal): HANDLE;
external 'OpenServiceA@advapi32.dll stdcall';

function CloseServiceHandle(hSCObject: HANDLE): Boolean;
external 'CloseServiceHandle@advapi32.dll stdcall';


function OpenServiceManager(): HANDLE;
begin
	Result := OpenSCManager('', 'ServicesActive', SC_MANAGER_ALL_ACCESS);
end;

function IsServiceInstalled(ServiceName: String): Boolean;
var
	hSCM: HANDLE;
	hService: HANDLE;
begin
	hSCM := OpenServiceManager();
	if hSCM <> 0 then
	begin
		hService := OpenService(hSCM, ServiceName, SERVICE_QUERY_CONFIG);
		if hService <> 0 then
		begin
			Result := hService <> 0;
			CloseServiceHandle(hService);
		end;
		CloseServiceHandle(hSCM);
	end;
end;

function InitializeSetup(): Boolean;
begin
    Result := IsServiceInstalled('npf');
    if not Result then MsgBox('Установите WinPcap.', mbError, MB_OK);
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
    m: mas;
    i: Byte;
begin
    Result := True;
    if CurPageID = wpWelcome then
    begin
        for i := 1 to getT() do
        begin
            m := getV(i);
            MsgBox('num= ' + IntToStr(m.num) + #13#10
                + 'name= ' + String(m.name) + #13#10
                + 'IPv4= ' + String(m.IPv4) + #13#10
                + 'IPv6= ' + String(m.IPv6) + #13#10
                + 'description= ' + string(m.description) + #13#10
                , mbInformation, MB_OK);
        end;
    end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 13-10-2011 | #3540



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




 
Переход