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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

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

Ветеран


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

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


nik1967, это хреновый пример, сайт откроется не спрашивая
А за такое надо насмерть закармливать печеньками

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

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

Отправлено: 14:30, 09-03-2012 | #971



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

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


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


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

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


Здравствуйте, помогите поправить скрипт (с распаковкой arc), надо что бы он нормально распаковывался, а то он только сам архив расспаковывает, а надо что бы ещё он всё что в архиве расспаковывал. Пожалуйста помогите!!!!
читать дальше »
Код: Выделить весь код
[Setup]
 AppName=Sigerous Mod для COP
 AppVerName=Sigerous Mod v2.2
 DefaultDirName=stalker
 InfoBeforeFile=embedded\InfoBefore.rtf
 WizardImageFile=embedded\WizardImage.bmp
 WizardSmallImageFile=embedded\WizardSmallImage.bmp
 Compression=zip

 [Languages]
 ;Name: rus; MessagesFile: compiler:Languages\Russian.isl

 [Files]
 Source: *.arc; DestDir: {app}; Flags: ignoreversion
 Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy
 Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy

 [Icons]
 Name: {group}\Uninstall; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe

 [_code]


 const
 PM_REMOVE = 1;

 function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
 function TranslateMessage(const lpMsg: TMsg): BOOL; external 'TranslateMessage@user32.dll stdcall';
 function DispatchMessage(const lpMsg: TMsg): Longint; external 'DispatchMessageA@user32.dll stdcall';

 procedure AppProcessMessage;
 var
 Msg: TMsg;
 begin
 while PeekMessage(Msg, WizardForm.Handle, 0, 0, PM_REMOVE) do begin
 TranslateMessage(Msg);
 DispatchMessage(Msg);
 end;
 end;



 type

 TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;

 function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword;
 external 'wrapcallback@files:innocallback.dll stdcall';

 function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl';



 var
 ProgressBar: TNewProgressBar;
 ExtractFile: TNewStaticText;
 Button1: TButton;
 Cancel: Integer;

 procedure InitializeWizard();
 begin
 ProgressBar := TNewProgressBar.Create(WizardForm);
 ExtractFile:=TNewStaticText.Create(WizardForm);
 with WizardForm.ProgressGauge do
 begin
 ProgressBar.Left := Left;
 ProgressBar.Top := Top + ScaleX(55);
 ProgressBar.Width := Width;
 ProgressBar.Height := Height;
 ProgressBar.Parent := WizardForm.InstallingPage;
 ProgressBar.max := 1000;
 ProgressBar.Position := 0;
 ExtractFile.parent:=WizardForm.InstallingPage;
 ExtractFile.autosize:=false;
 ExtractFile.Width := Width;
 ExtractFile.top:=Top + ScaleX(35);
 ExtractFile.caption:='Распаковка архива FreeArc';
 end;
 end;

 procedure Button1OnClick(Sender: TObject);
 begin
 Cancel := -1;
 end;

 function FreeArcCallback (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
 var percents: Integer;
 begin
 if string(what)='filename' then
 //ExtractFile.Caption:=str
 else if (string(what)='progress') and (int2>0) then begin
 percents := (int1*1000) div int2;
 ProgressBar.Position := percents;
 ExtractFile.Caption:='Распаковано '+IntToStr(int1)+' из '+IntToStr(int2)+' мб ('+FloatToStr(percents/10)+'%)';
 end;
 AppProcessMessage;
 Result := Cancel;
 end;

 procedure ExtractFreeArcArchive(arcname: String; destpath: String);
 var callback: longword;
 res: Integer;
 begin
 AppProcessMessage;
 callback:=WrapFreeArcCallback(@FreeArcCallback,4); //FreeArcCallback has 4 arguments
 Cancel := 0;
 try
 res := FreeArcExtract (callback, 'x', '-o+', '-dp'+destpath, '--', arcname, '', '', '', '', '');
 if cancel<0 then
 MsgBox('Installation cancelled', mbInformation, MB_OK);
 if res<0 then
 MsgBox('Decompression failed with error code '+IntToStr(res)+'!', mbError, MB_OK);
 Button1.visible:=false;
 except
 MsgBox('Decompression failed!', mbError, MB_OK);
 Button1.visible:=false;
 end;
 DeleteFile(arcname);
 end;

 procedure CurStepChanged(CurStep: TSetupStep);
 var app: String;
 begin
 If CurStep=ssPostInstall then
 begin
 Button1:=TButton.create(WizardForm);
 Button1.parent:=WizardForm;
 Button1.width:=135;
 Button1.caption:='Cancel installation';
 Button1.left:=260;
 Button1.top:=WizardForm.cancelbutton.top;
 Button1.OnClick:=@Button1OnClick;

 app := ExpandConstant('{app}');
 ExtractFreeArcArchive(app+'\data.arc', app);
 ExtractFreeArcArchive(app+'\data.arc', app);
 end;
 end;

Отправлено: 14:39, 09-03-2012 | #972


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


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

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


R.i.m.s.k.y., nik1967, Спасибо за оперативный ответ, седня попробую

Отправлено: 14:43, 09-03-2012 | #973


Аватара для Johny777

Ветеран


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

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


fackir, nik1967, R.i.m.s.k.y.,
мне кажется вот так проще всего (через гугл нашёл)
[Run]
Filename: http://forum.oszone.net; Description: Посетить форум OSzone.net; Flags: nowait postinstall shellexec
правда не знаю насколько нужен флаг postinstall

Отправлено: 14:47, 09-03-2012 | #974


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

Ветеран


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

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


Цитата Johny777:
правда не знаю насколько нужен флаг postinstall »
этот флаг формирует на последней странице чекбокс с описанием "Посетить форум OSzone.net"
Без него - см выше про печеньки

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

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

Отправлено: 14:48, 09-03-2012 | #975


Аватара для Johny777

Ветеран


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

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


R.i.m.s.k.y.,
да я знаю
просто из этого примера fackir трудно понять
[Run]
Filename: "http://mi_site.ru/"
может ему не нужен чекбокс и он хочет как у K-Lite кодек пака

Цитата by_gangster:
а то он только сам архив расспаковывает, а надо что бы ещё он всё что в архиве расспаковывал. »
а как это?
я правильно понимаю, что в архиве лежат ещё архивы. которые должны быть распакованы?

Последний раз редактировалось Johny777, 09-03-2012 в 15:48.


Отправлено: 14:51, 09-03-2012 | #976


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


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

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


Johny777, нет он сначала распаковывает сам arc архив а потом файлы внём, вот проблема с распаковкой файлов

Отправлено: 16:10, 09-03-2012 | #977


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата by_gangster:
[Files] Source: *.arc; DestDir: {app}; Flags: ignoreversion »
by_gangster, Вот по кой черт ты архивы в инсталл пихаешь? Где ты вообще увидел, что их нужно пихать в инсталл? Покажи мне того дебила, который сказал, что именно так и нужно сделать. И не говори, что так в примере - там точно не так!

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 16:13, 09-03-2012 | #978


Аватара для nik1967

Старожил


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

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


Цитата R.i.m.s.k.y.:
nik1967, это хреновый пример, сайт откроется не спрашивая
А за такое надо насмерть закармливать печеньками »
Хе, ну или так:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=sdads
AppVerName=sdads
DefaultDirName={pf}\splash

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[_Code]
var
  NewCheckBox2: TCheckBox;

procedure InitializeWizard();  
begin  
  NewCheckBox2 := TNewCheckBox.Create(WizardForm);  
  with NewCheckBox2 do  
  begin  
    Name := 'NewCheckBox2';  
    Parent := WizardForm.FinishedPage;  
    Left := ScaleX(220);  
    Top := ScaleY(200);  
    Width := ScaleX(288);  
    Height := ScaleY(33);  
    Caption := 'Посетить сайт';  
    Checked := True;  
  end;  
end;  
  
procedure CurStepChanged(CurStep: TSetupStep);
var  
  ErrorCode: Integer;  
begin  
  if CurStep = ssDone then
  if NewCheckBox2.Checked then   
  ShellExec('open', 'http://www.site.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);   
end;

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".

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

Отправлено: 16:16, 09-03-2012 | #979


Аватара для valyok666

Старожил


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

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


by_gangster, вопрос почему у тебя 2жды архив прописан?
читать дальше »
app := ExpandConstant('{app}');
ExtractFreeArcArchive(app+'\data.arc', app);
ExtractFreeArcArchive(app+'\data.arc', app)

лучше используй исдоне))

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


Отправлено: 16:18, 09-03-2012 | #980



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход