Имя пользователя:
Пароль:
 | Правила  

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

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

Аватара для 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] - Скачать;


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

Отправлено: 03:49, 21-05-2012

 

Аватара для Mailchik

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


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

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


Nikish X,
читать дальше »
Цитата:
function ShowChangeDiskWindow
Код: Выделить весь код
function ShowChangeDiskWindow (Text, DefPath, SearchFile: string):boolean;
показывает диалог с запросом следующего диска и ожиданием появления в DefaultPath файла, указанного SearchFile. Свой текст запроса можно указать значением Text;
DefaultPath - должен обязательно указывать {src}, иначе работоспособность не гарантируется;
SearchFile - файл, который каждые 0,2 секунды ищется по указанному пути;
Существует возможность в запросе сменить путь на другой, и если там будет найден SearchFile, то все последующие {src} в функциях распаковки будут идентифицироваться как указанный в данном диалоге путь.
neorom, никак.
R.i.m.s.k.y., Ставь через простой ISSkin.dll. Пример как полностью заскинить окно выбора языка:
читать дальше »
Код: Выделить весь код
#ifdef UNICODE
 #define A "W"
#else
 #define A "A"
#endif

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: ISSkin{#A}.dll; Flags: dontcopy;
Source: ISSkin.cjstyles; Flags: dontcopy;

[code]
var
 mySelectLanguageForm: TForm;
 mySelectLabel: TLabel;
 myLangCombo: TNewComboBox;
 myOKButton: TButton;
 myCancelButton: TButton;
 myIconBitmapImage: TBitmapImage;
 bCancel: Boolean;
 OldProc: Longint;

procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
 external 'LoadSkin@files:isskin{#A}.dll stdcall';
procedure UnloadSkin();
  external 'UnloadSkin@files:isskin{#A}.dll stdcall';
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint;
 external 'CallWindowProc{#A}@user32.dll stdcall delayload';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint;
 external 'SetWindowLong{#A}@user32.dll stdcall delayload';

function NewProc(h: hwnd; Msg, wParam, lParam: Longint): Longint;
begin
  if (Msg = $0112) then begin
    if (wParam = 61536) then begin
        myCancelButton.OnClick(myCancelButton);
        wParam := 0;
    end;
  end;
  Result := CallWindowProc(OldProc, h, Msg, wParam, lParam);
end;

procedure myOKButtonClick(Sender: TObject);
begin
  SelectLanguageForm.LangCombo.ItemIndex := myLangCombo.ItemIndex;
  mySelectLanguageForm.Close;
  SetWindowLong(mySelectLanguageForm.Handle, -4, OldProc);
end;

procedure myCancelButtonClick(Sender: TObject);
begin
  mySelectLanguageForm.Close;
  bCancel := True;
  SetWindowLong(mySelectLanguageForm.Handle, -4, OldProc);
end;

procedure mySelectLanguageFormP;
 begin
 with SelectLanguageForm do begin
  mySelectLanguageForm := TForm.Create(nil);
  with mySelectLanguageForm do begin
   ClientWidth := ScaleX(300);
   ClientHeight := ScaleY(125);
   BorderIcons := [biSystemMenu];
   BorderStyle := bsDialog;
   Caption := SelectLanguageForm.Caption;
   Position := poScreenCenter;
  end;
  mySelectLabel := TLabel.Create(mySelectLanguageForm);
  with mySelectLabel do begin
   Parent := mySelectLanguageForm;
   AutoSize := False;
   WordWrap := True;
   SetBounds(SelectLabel.Left, SelectLabel.Top,
     SelectLabel.Width, SelectLabel.Height);
   Caption := SelectLabel.Caption;
  end;
  myLangCombo := TNewComboBox.Create(mySelectLanguageForm);
  with myLangCombo do begin
   Parent := mySelectLanguageForm;
   SetBounds(LangCombo.Left, LangCombo.Top,
     LangCombo.Width, LangCombo.Height);
   Items := LangCombo.Items;
   Style := csDropDownList;
   Sorted := True;
   ItemIndex := LangCombo.ItemIndex;
  end;
  myOKButton := TButton.Create(mySelectLanguageForm);
  with myOKButton do begin
   Parent := mySelectLanguageForm;
   SetBounds(OKButton.Left, OKButton.Top,
     OKButton.Width, OKButton.Height);
   Caption := OKButton.Caption;
   OnClick := @myOKButtonClick;
  end;
  myCancelButton := TButton.Create(mySelectLanguageForm);
  with myCancelButton do begin
   Parent := mySelectLanguageForm;
   SetBounds(CancelButton.Left, CancelButton.Top,
     CancelButton.Width, CancelButton.Height);
   Caption := CancelButton.Caption;
   OnClick := @myCancelButtonClick;
  end;
  myIconBitmapImage := TBitmapImage.Create(mySelectLanguageForm);
  with myIconBitmapImage do begin
   Parent := mySelectLanguageForm;
   SetBounds(IconBitmapImage.Left, IconBitmapImage.Top,
     IconBitmapImage.Width, IconBitmapImage.Height);
   Bitmap := IconBitmapImage.Bitmap;
  end;
 end;
 OldProc := SetWindowLong(mySelectLanguageForm.Handle, -4, CallbackAddr('NewProc'));
 mySelectLanguageForm.ShowModal;
 mySelectLanguageForm.Free;
end;

function InitializeLanguageDialog(): Boolean;
begin
 ExtractTemporaryFile('ISSkin.cjstyles');
 LoadSkin(ExpandConstant('{tmp}\ISSkin.cjstyles'), '');
 mySelectLanguageFormP;
 Result := False;
end;

procedure DeinitializeSetup();
begin
 UnloadSkin();
end;

function InitializeSetup(): Boolean;
 begin
  if bCancel then
   Result := False else Result := True;
end;

Последний раз редактировалось Mailchik, 20-01-2013 в 19:12.

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

Отправлено: 17:30, 20-01-2013 | #1571



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

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


Аватара для alert30

Ветеран


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

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


Цитата Mailchik:
neorom, никак. »
Есть исключение, что какиие-нибудь программы, упакованными официальными инсталляторами (которые скачаны с оф. сайта Inno) иногда может распаковать со скриптом.

Отправлено: 17:48, 20-01-2013 | #1572


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

Ветеран


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

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


Цитата Mailchik:
Пример как полностью заскинить окно выбора языка: »
---------------------------
Ошибка компиляции
---------------------------
Invalid prototype for 'InitializeLanguageDialog'

Цитата alert30:
иногда может распаковать со скриптом. »
без пароля и шифрации
Секция кода только в виде bin файла

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

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

Отправлено: 18:10, 20-01-2013 | #1573


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


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

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


Цитата R.i.m.s.k.y.:
---------------------------
Ошибка компиляции
---------------------------
Invalid prototype for 'InitializeLanguageDialog' »
Поставь последнюю расширенную версию от китайцев.
Mailchik, по-моему проще было написать в mySelectLanguageForm.OnClose. чем изголятся и на крестик что-то ставить. ну хотя оно и так работать будет как надо.

Последний раз редактировалось sergey3695, 20-01-2013 в 21:01.


Отправлено: 18:41, 20-01-2013 | #1574


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


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

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


Возможно где-то єсть архив скриптов инсталашок для разних програм ?

Отправлено: 22:29, 20-01-2013 | #1575


Аватара для Raf-9600

Старожил


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

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


А имя инсталлятора можно как-то вычислить? Мне его нужно передать как параметр для запуска одного файла...

Отправлено: 10:38, 21-01-2013 | #1576


Аватара для Mailchik

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


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

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


Raf-9600,
Код: Выделить весь код
ExpandConstant('{srcexe}') - полный путь до инсталлятора
ExtractFileName(ExpandConstant('{srcexe}')) - имя инсталлятора
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:05, 21-01-2013 | #1577


Аватара для alert30

Ветеран


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

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


neorom, шапка для чего или идите к богу по имени "Гугл", он все знает.

З.Ы. В соседней теме там тоже много плюшевых скриптов.

Последний раз редактировалось alert30, 21-01-2013 в 16:55.

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

Отправлено: 14:12, 21-01-2013 | #1578


Ветеран


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

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


блин не могу понять как среп распаковать,фриакр архивы распаковывает,а среп нет

Отправлено: 18:36, 21-01-2013 | #1579


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


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

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


Доброго времени суток.Перерыл гору информации,но т.к. с программой только начал учиться работать - не все происходит быстро.
Суть проблеммы такова: в инсталяторе для одного из компонентов необходима проверка в реестре на наличие в системе Microsoft .NET Framewok 3.5 (именно 3.5, а не 4+) и библиотеки Dokan .При отсутствии их в системе должна быть установка пост-инсталлом оригинальными экзэшниками,тк Redistributable Package весят слишком много.А вот если в системе есть и то и другое,просто заканчивается сетап .Пробовал через секцию run с условием выбора компонента,но тогда в любом случае запускается instal.exe Fraimwork и Dokan.Буду премного благодарен,если кто поможет сварганить такой кусочек...

Отправлено: 13:00, 23-01-2013 | #1580



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход