|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1269 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
Ветеран Сообщения: 1269
|
Профиль | Отправить PM | Цитировать Цитата Лександер:
Цитата Лександер:
|
||
Отправлено: 13:19, 10-03-2012 | #1011 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать Цитата El Sanchez:
|
|
------- Отправлено: 13:41, 10-03-2012 | #1012 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Люди да помогите чайнику исправить хоть и тупой но скрипт, нодо что бы он распаковывал arc архив, и всё что внём. Я сделал что бы он расспаковывал сам .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 [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); end; end; |
Отправлено: 13:44, 10-03-2012 | #1013 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
вот как это реализовано Inno Setup GameScript Generator от South http://forum.csmania.ru/viewtopic.php?t=4688 |
Последний раз редактировалось Johny777, 10-03-2012 в 14:34. Отправлено: 14:11, 10-03-2012 | #1014 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, спасибо, но я уже сделал как выше привел пример
|
------- Отправлено: 14:38, 10-03-2012 | #1015 |
Забанен Сообщения: 3
|
alert30, Просто рекламма
|
Отправлено: 15:36, 10-03-2012 | #1016 |
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать Цитата repacksman:
|
|
Отправлено: 17:00, 10-03-2012 | #1017 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Archives = '{#ArcLocation}'; как сдесь указывать расположение архивов arc ???
|
Отправлено: 22:14, 10-03-2012 | #1018 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать by_gangster,
ты прости, но это уже не в какие ворота кажись я писал вот это Цитата Johny777:
Цитата Johny777:
будь немного внимательнее! |
||
Последний раз редактировалось Johny777, 11-03-2012 в 00:43. Отправлено: 23:38, 10-03-2012 | #1019 |
Старожил Сообщения: 241
|
Профиль | Отправить PM | Цитировать by_gangster, используй исдоне проще в обращении))
|
------- Отправлено: 00:42, 11-03-2012 | #1020 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|