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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Аватара для Johny777

Ветеран


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

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


Цитата Ivan_009:
Как текструировать DirEdit и GroupEdit через ботву »
нафиг тебе
сделай так

with WizardForm.DirEdit do
begin
BorderStyle := bsNone;
Color := clBtnFace;
end;

чтоб эдит сливался с окном (не было границ)
и картинку наложи
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 29-08-2012 | #741



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

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


Старожил


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

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


Ivan_009, вот пример
читать дальше »
[Setup]
AppName=«Company of Heroes. Anthology»
AppVersion=1.5
DefaultDirName={pf}\Company of Heroes. Anthology
DefaultGroupName=Company of Heroes. Anthology


[Files]
Source: Files\botva2.dll; DestDir: {tmp}; Flags: dontcopy;
Source: Files\b2p.dll; DestDir: {tmp}; Flags: dontcopy;
Source: Files\Edit.png; DestDir: {tmp}; Flags: dontcopy;

[Icons]
Name: "{group}\«Company of Heroes. Anthology»"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,«Company of Heroes. Anthology»}"; Filename: "{uninstallexe}"

[code]
var
Edit,GroupEdit: Longint;
DirEditLabel, GroupEditLabel: TLabel;

#include "Modules\botva2.iss"

function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
Result:=True;
end;

procedure DirChange(Sender: TObject);
begin
DirEditLabel.Caption:=MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
end;

procedure GroupChange(Sender: TObject);
begin
GroupEditLabel.Caption := MinimizePathName(WizardForm.GroupEdit.Text, GroupEditLabel.Font, GroupEditLabel.Width);
end;

procedure InitializeWizard;
begin
Edit:=ImgLoad(WizardForm.SelectDirPage.Handle,ExpandConstant('{tmp}\Edit.png'),ScaleX(0), ScaleY(81),ScaleX(332),ScaleY(22),True,True);
GroupEdit:=ImgLoad(WizardForm.SelectProgramGroupPage.Handle,ExpandConstant('{tmp}\Edit.png'),ScaleX( 0), ScaleY(81),ScaleX(332),ScaleY(22),True,True);
ImgApplyChanges(WizardForm.SelectDirPage.Handle);
ImgApplyChanges(WizardForm.SelectProgramGroupPage.Handle);

DirEditLabel := TLabel.Create(WizardForm);
with DirEditLabel do begin
AutoSize:=False;
SetBounds(ScaleX(5), ScaleY(85), ScaleX(446), ScaleY(15));
WordWrap:= True;
ShowAccelChar := False;
Transparent:=True;
Font.Name:= 'Arial'
Font.Size:= 9;
Font.Color:=$000000;
Font.Style:=[fsBold];
Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
Parent := WizardForm.SelectDirPage;
end;

GroupEditLabel := TLabel.Create(WizardForm);
with GroupEditLabel do begin
AutoSize:=False;
SetBounds(ScaleX(5), ScaleY(85), ScaleX(446), ScaleY(15));
WordWrap:= True;
ShowAccelChar := False;
Transparent:=True;
Font.Name:= 'Arial'
Font.Size:= 9;
Font.Color:=$000000;
Font.Style:=[fsBold];
Caption := MinimizePathName(WizardForm.GroupEdit.Text, GroupEditLabel.Font, GroupEditLabel.Width);
Parent := WizardForm.SelectProgramGroupPage;
end;
WizardForm.DirEdit.OnChange := @DirChange;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text;
WizardForm.GroupEdit.OnChange := @GroupChange;
end;

procedure HideComponents;
begin
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
DirEditLabel.Hide;
GroupEditLabel.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
HideComponents;
case CurPageID of
wpSelectDir:
begin
DirEditLabel.Show;
end;
wpSelectProgramGroup:
GroupEditLabel.Show;
end;
end;

procedure DeinitializeSetup();
begin
gdipShutdown;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 29-08-2012 | #742


Аватара для MogilShik2007

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


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

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


Привет, подскажите скрипт и что за .dll использовались на скринах:


И если можно поподробнее)))

Отправлено: 19:40, 29-08-2012 | #743


Аватара для alert30

Ветеран


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

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


MogilShik2007, набери в Google "ISDone" и ищи! Тысеача раз уже спросили!
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:06, 29-08-2012 | #744


Аватара для Ivan_009

Ветеран


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

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


Цитата MogilShik2007:
Привет, подскажите скрипт и что за .dll использовались на скринах: »
Лови

Последний раз редактировалось Ivan_009, 05-09-2012 в 19:44.

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

Отправлено: 21:14, 29-08-2012 | #745


Аватара для Johny777

Ветеран


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

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


El Sanchez,
можно пожалуйста пример загрузки скина из оперативки (тогда его не нужно копировать в директорию установки а оттуда в темп для деинсталятора и загрузка должна быть быстрее)?

и скажи можно ли пихать библиотеки в RawDataResource (если да то с примером пожалуйста для например той же ISSkin.dll)?
так не работает - procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@RawDataResource:skin stdcall setuponly';

в Example_RawDataResource.iss немного не то тк файл извлекается в конечном итоге в темп и грузится оттуда

Последний раз редактировалось Johny777, 30-08-2012 в 11:17.

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

Отправлено: 11:09, 30-08-2012 | #746


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


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

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


Здравствуйте!
Я использую Stormlib.dll для упаковки игровых архивов.
У меня не получается использовать Callback с помощью функции SFileSetAddFileCallback.
Вот описание функции: http://www.zezula.net/en/mpq/stormli...ecallback.html

Вылетает ошибка:
"Access violation at address xxxxxxxx. Write of address xxxxxxxx

Дебаггер указывает на SFileSetAddFileCallback (phMPQ, @AddFileCallback, 0);

Очень надеюсь на помощь, заранее спасибо!

Вот мой код:

Код: Выделить весь код
var
phMPQ: THandle;

type
  TCallback = function (pvUserData: Integer; dwBytesWritten:DWORD; dwTotalBytes: DWORD; bFinalCall: BOOL): PAnsiChar;

function SFileSetAddFileCallback(phMPQ: THandle; pfnAddFileCB: TCallback ; pvUserData: Integer): BOOL; external 'SFileSetAddFileCallback@files:StormLib.dll stdcall';


// Функция, которая должна вызываться dll-кой
function AddFileCallback (pvUserData: Integer; dwBytesWritten:DWORD; dwTotalBytes: DWORD; bFinalCall: BOOL): PAnsiChar;
begin

end;


//
procedure CurStepChanged(CurStep: TSetupStep);
begin
SFileSetAddFileCallback (phMPQ, @AddFileCallback, 0);
end;

Отправлено: 13:38, 30-08-2012 | #747


Аватара для MogilShik2007

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


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

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


Цитата alert30:
MogilShik2007, набери в Google "ISDone" и ищи! Тысеача раз уже спросили! »
Мне нужен конкретный скрипт, как на скринах, а не сидеть и подбирать из нескольких десятков найденных в нете...

Отправлено: 17:10, 30-08-2012 | #748


Аватара для alert30

Ветеран


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

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


MogilShik2007, http://freearc.org/ru/InnoSetup.aspx
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:47, 30-08-2012 | #749


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

Ветеран


Contributor


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

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


Цитата Johny777:
можно пожалуйста пример загрузки скина из оперативки (тогда его не нужно копировать в директорию установки а оттуда в темп для деинсталятора и загрузка должна быть быстрее)?
и скажи можно ли пихать библиотеки в RawDataResource (если да то с примером пожалуйста для например той же ISSkin.dll)? »
Этот геморрой не стоит свеч.

Цитата al1511:
Я использую Stormlib.dll для упаковки игровых архивов.
У меня не получается использовать Callback с помощью функции SFileSetAddFileCallback. »
al1511,
Код: Выделить весь код
var
   phMPQ: THandle;

function SFileSetAddFileCallback(hMpq: THandle; pfnAddFileCB, pvUserData: Longint): BOOL; external 'SFileSetAddFileCallback@files:stormlib.dll stdcall';

procedure AddFileCallback(pvUserData: Longint; dwBytesWritten, dwTotalBytes: DWORD; bFinalCall: BOOL);
begin
    //
end;

//
procedure CurStepChanged(CurStep: TSetupStep);
begin
    SFileSetAddFileCallback (phMPQ, CallbackAddr('AddFileCallback'), 0);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:50, 30-08-2012 | #750



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




 
Переход