|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3] |
|
Скрипты Inno Setup. Помощь и советы [часть 3]
|
Ветеран Сообщения: 1133 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 |
|
------- Отправлено: 00:28, 04-11-2010 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать serhio, исправляеш расширение архива на bin, или любое другое, но не забываеш указывать это расширение в скрипте, там где ты выделил.
только для использования именно FreeArc нужно раскоментировать строчку #define FreeArc. |
------- Отправлено: 13:38, 12-06-2011 | #1861 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Лександер, спасибо, все вышло!
|
Отправлено: 14:39, 12-06-2011 | #1862 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать как в этом скрипте чтобы вконце на финиш странице не было белого фона
![]() #define GameName "Crysis Warhead" #define NeedSize "10000000000" #define precomp038 #define ExeName "Crysis2Launcher.exe" #define ExeDir "bin32\" [Setup] SetupIconFile=iconset.ico AppName={#GameName} AppVerName={#GameName} DefaultDirName={pf}\{#GameName} DefaultGroupName={#GameName} OutputDir=. OutputBaseFilename=Setup SolidCompression=true #ifdef NeedSize ExtraDiskSpaceRequired={#NeedSize} #endif WizardImageFile=img.bmp WizardSmallImageFile=shapka.bmp #ifdef Components Compression=lzma2/ultra64 InternalCompressLevel=ultra64 PrivilegesRequired=lowest [Types] Name: "full"; Description: "Full installation"; Flags: iscustom #endif [Run] Filename: {src}\Redist\dxwebsetup.exe; Description: DirectX 9.0c; WorkingDir: "{src}\redist"; Parameters: /silent; StatusMsg: Установка DirectX 9.0c...; Flags: runascurrentuser nowait postinstall skipifsilent unchecked; Filename: {src}\Redist\vcredist_x86_2005_sp1.exe; Description: Microsoft Visual C++ Redistibutable 2005...; Parameters: /silent; StatusMsg: Microsoft Visual C++ Redistibutable 2005...; Flags: nowait postinstall skipifsilent unchecked; [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Users\Admin\Desktop\1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "logo2.bmp"; DestDir: "{app}"; Attribs: hidden system; Source: "DirBitmap.bmp"; DestDir: "{tmp}"; Flags: dontcopy Source: ISDone.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy #ifdef records Source: records.inf; DestDir: {tmp}; Flags: dontcopy #endif #ifdef precomp038 Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy Source: Include\RTconsole.exe; DestDir: {tmp}; Flags: dontcopy Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy #endif [Icons] Name: {group}\{#GameName}; Filename: {app}\{#ExeDir}{#ExeName}; WorkingDir: {app}\{#ExeDir}; Comment: {#GameName}; Name: {group}\Удалить игру; Filename: {app}\Uninstall\unins000; WorkingDir: {app}\Uninstall\; Comment: Удалить игру; [CustomMessages] russian.ExtractedFile=Распаковывается файл: russian.CancelButton=Отменить распаковку russian.Error=Ошибка распаковки! russian.Soft=Установить дополнительное ПО [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [UninstallDelete] Type: filesandordirs; Name: {app} [ Code] var LabelPct,LabelCurrFileName: TLabel; ISDoneProgressBar: TNewProgressBar; MyCancelButton: TButton; OveralPct,Cancel:integer; CallBack:longword; MyError:boolean; FinishedLabel: TLabel; Text: TNewStaticText; LogoImage: TBitmapImage; type TCallback = function (Pct: integer;CurrentFile:string): longword; TMessage = record hWnd: HWND; msg, wParam: Word; lParam: LongWord; Time: TFileTime; pt: TPoint; end; function PeekMessage(var lpMsg: TMessage; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall'; function TranslateMessage(const lpMsg: TMessage): BOOL; external 'TranslateMessage@user32.dll stdcall'; function DispatchMessage(const lpMsg: TMessage): Longint; external 'DispatchMessageA@user32.dll stdcall'; function WrapMyCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:innocallback.dll stdcall'; function ISArcExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password, CfgFile, WorkPath: AnsiString):BOOL; external 'ISArcExtract@files:ISDone.dll stdcall'; function IS7ZipExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; callback: longword; Password: AnsiString):BOOL; external 'IS7zipExtract@files:ISDone.dll stdcall'; function ISPrecompExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISPrecompExtract@files:ISDone.dll stdcall'; function ISSRepExtract(CurComponent:longword; var OveralPct:integer; PctOfTotal:double; InName, OutFile, IdxFile: AnsiString; DeleteInFile:boolean; callback: longword):BOOL; external 'ISSrepExtract@files:ISDone.dll stdcall'; function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):BOOL; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall'; function StartRecord(RecordFileName:AnsiString; AllComponents:longword):BOOL; external 'StartRecord@files:ISDone.dll stdcall'; function CheckPoint(CurComponent:Integer):BOOL; external 'CheckPoint@files:ISDone.dll stdcall'; function StopRecord:BOOL; external 'StopRecord@files:ISDone.dll stdcall'; function ProgressCallback(Pct: integer; CurrentFile:AnsiString): longword; var Msg: TMessage; begin if Pct<=ISDoneProgressBar.Max then ISDoneProgressBar.Position := Pct; LabelPct.Caption := IntToStr(Pct div 10)+'.'+chr(48 + Pct mod 10)+'%'; LabelCurrFileName.Caption :=ExpandConstant('{cm:ExtractedFile} ')+CurrentFile; while PeekMessage(Msg, 0, 0, 0, 1) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; Result := Cancel; end; procedure CancelButtonOnClick(Sender: TObject); begin if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1; end; procedure InitializeWizard(); begin ExtractTemporaryFile('DirBitmap.bmp'); ExtractTemporaryFile('logo2.bmp'); LogoImage := TBitmapImage.Create(WizardForm); with LogoImage do begin SetBounds(ScaleX(10), ScaleY(320), ScaleX(175), ScaleY(35)); Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo2.bmp')); Parent := WizardForm; end; with WizardForm.WizardSmallBitmapImage do begin SetBounds(ScaleX(0), ScaleY(2), ScaleX(497), ScaleY(56)); end; with WizardForm.SelectDirBitmapImage do begin SetBounds(ScaleX(0), ScaleY(0), ScaleX(42), ScaleY(42)); end; WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap.bmp')); WizardForm.MainPanel.Color := clGray; WizardForm.WizardBitmapImage.Width := 497; WizardForm.WizardBitmapImage2.Width := 497; WizardForm.PageNameLabel.Width:=0; WizardForm.PageDescriptionLabel.Hide; WizardForm.Font.Color:=clblack; WizardForm.Color:=clGray; WizardForm.WelcomePage.Color:=clGray; WizardForm.InnerPage.Color:=clGray; WizardForm.SelectDirPage.Color:=clGray; WizardForm.WelcomeLabel1.Hide; WizardForm.WelcomeLabel2.Hide; with TLabel.Create(WizardForm) do begin AutoSize:=WizardForm.WelcomeLabel1.AutoSize; Left:=WizardForm.WelcomeLabel1.Left; Top:=WizardForm.WelcomeLabel1.Top Width:=WizardForm.WelcomeLabel1.Width Height:=WizardForm.WelcomeLabel1.Height WordWrap:=WizardForm.WelcomeLabel1.WordWrap; Font.Name:=WizardForm.WelcomeLabel1.Font.Name; Font.Size:=WizardForm.WelcomeLabel1.Font.Size; Font.Color:=clblack; // text colour верхнє Font.Style:=WizardForm.WelcomeLabel1.Font.Style; Caption:=WizardForm.WelcomeLabel1.Caption; Parent:=WizardForm.WelcomeLabel1.Parent Transparent:=True end; with TLabel.Create(WizardForm) do begin AutoSize:=WizardForm.WelcomeLabel2.AutoSize; Left:=WizardForm.WelcomeLabel2.Left; Top:=WizardForm.WelcomeLabel2.Top Width:=WizardForm.WelcomeLabel2.Width Height:=WizardForm.WelcomeLabel2.Height WordWrap:=WizardForm.WelcomeLabel2.WordWrap; Font.Name:=WizardForm.WelcomeLabel2.Font.Name; Font.Size:=WizardForm.WelcomeLabel2.Font.Size; Font.Color:=clblack; // text colour нижнє Font.Style:=WizardForm.WelcomeLabel2.Font.Style; Caption:=WizardForm.WelcomeLabel2.Caption; Parent:=WizardForm.WelcomeLabel2.Parent Transparent:=True end; FinishedLabel:= TLabel.Create(WizardForm); WizardForm.FinishedLabel.Hide; with FinishedLabel do begin Font.Size:=9; Font.Color:=clSilver; Font.Style:=[fsBold]; Parent:=WizardForm; Transparent:=True; end; WizardForm.FinishedHeadingLabel.Hide; with TLabel.Create(WizardForm) do begin AutoSize:=WizardForm.FinishedHeadingLabel.AutoSize; Left:=WizardForm.FinishedHeadingLabel.Left; Top:=WizardForm.FinishedHeadingLabel.Top Width:=WizardForm.FinishedHeadingLabel.Width Height:=WizardForm.FinishedHeadingLabel.Height WordWrap:=WizardForm.FinishedHeadingLabel.WordWrap; Font.Name:=WizardForm.FinishedHeadingLabel.Font.Name; Font.Size:=WizardForm.FinishedHeadingLabel.Font.Size; Font.Color:=clblack; // text colour в конце инсталлятора Font.Style:=WizardForm.FinishedHeadingLabel.Font.Style; Caption:=WizardForm.FinishedHeadingLabel.Caption; Parent:=WizardForm.FinishedHeadingLabel.Parent Transparent:=True end; FinishedLabel:= TLabel.Create(WizardForm) WizardForm.FinishedLabel.Hide; with TLabel.Create(WizardForm) do begin WordWrap:=WizardForm.FinishedLabel.WordWrap; Font.Name:=WizardForm.FinishedLabel.Font.Name; Font.Size:=WizardForm.FinishedLabel.Font.Size; Font.Color:=clgreen; // text colour Font.Style:=WizardForm.FinishedLabel.Font.Style; Caption:=WizardForm.FinishedLabel.Caption; Parent:=WizardForm.FinishedLabel.Parent Transparent:=True end; ISDoneProgressBar := TNewProgressBar.Create(WizardForm); with ISDoneProgressBar do begin Left := ScaleX(0); Top := ScaleY(40); Width := ScaleX(417); Max := 1000; Height := WizardForm.ProgressGauge.Height; Parent := WizardForm.InstallingPage; end; LabelPct := TLabel.Create(WizardForm); with LabelPct do begin Parent := WizardForm.InstallingPage; AutoSize := False; Width := WizardForm.ProgressGauge.Width; Top := WizardForm.ProgressGauge.Top + ScaleY(50); Font.Size := 10; Font.Color := clSilver; Alignment := taCenter; Caption := ''; end; LabelCurrFileName := TLabel.Create(WizardForm); with LabelCurrFileName do begin Parent := WizardForm.InstallingPage; AutoSize := False; Width := WizardForm.ProgressGauge.Width; Left := ScaleX(0); Top := WizardForm.ProgressGauge.Top + ScaleY(25); Caption := ''; end; end; Procedure CurPageChanged(CurPageID: Integer); Begin if (CurPageID = wpFinished) and MyError then begin with TLabel.Create(WizardForm) do begin WizardForm.FinishedLabel.Hide; AutoSize:=WizardForm.FinishedHeadingLabel.AutoSize; Left:=WizardForm.FinishedLabel.Left; Top:=WizardForm.FinishedLabel.Top Width:=WizardForm.FinishedLabel.Width Height:=WizardForm.FinishedLabel.Height WordWrap:=WizardForm.FinishedLabel.WordWrap; Font.Name:=WizardForm.FinishedLabel.Font.Name; Font.Size:=WizardForm.FinishedLabel.Font.Size; WizardForm.Caption:= ExpandConstant('{cm:Error}'); WizardForm.FinishedLabel.Font.Color:= clyellow; WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted); Font.Color:=clwhite; Font.Style:=WizardForm.FinishedLabel.Font.Style; Caption:=WizardForm.FinishedLabel.Caption; Parent:=WizardForm.FinishedLabel.Parent Transparent:=True end; end; end; procedure CurStepChanged(CurStep: TSetupStep); var ChComp, TmpValue:longword; n:integer; begin if CurStep = ssPostInstall then begin WizardForm.ProgressGauge.Hide; WizardForm.CancelButton.Visible:=false; MyCancelButton:=TButton.Create(WizardForm); with MyCancelButton do begin Parent:=WizardForm; Width:=ScaleX(135); Caption:=ExpandConstant('{cm:CancelButton}'); Left:=ScaleX(360); Top:=WizardForm.cancelbutton.top; OnClick:=@CancelButtonOnClick; end; CallBack:=WrapMyCallback(@ProgressCallback,2); Cancel:=0; OveralPct:=0; #ifdef records ExtractTemporaryFile('records.inf'); #endif #ifdef precomp038 ExtractTemporaryFile('packjpg_dll.dll'); ExtractTemporaryFile('RTconsole.exe'); ExtractTemporaryFile('precomp038.exe'); ExtractTemporaryFile('zlib1.dll'); #endif ChComp:=0; StartRecord(ExpandConstant('{src}\records.inf'),ChComp); repeat MyError:=true; CallBack:=WrapMyCallback(@ProgressCallback,2); OveralPct:=0; ISArcExtract ( 0, OveralPct, 25, ExpandConstant('{src}\muzk.arc'), ExpandConstant('{app}'),false,CallBack, '', '', '') ISSRepExtract ( 0, OveralPct, 25, ExpandConstant('{app}\muzk.srep'), ExpandConstant('{app}\muzk.pcf'), '', true, CallBack) ISPrecompExtract( 0, OveralPct, 25, ExpandConstant('{app}\muzk.pcf'), ExpandConstant('{app}\muzk.7z'),true, CallBack) IS7ZipExtract ( 0, OveralPct, 25, ExpandConstant('{app}\muzk.7z'), ExpandConstant('{app}'),true, CallBack, '') MyError:=false; until true; StopRecord; MyCancelButton.Visible:=false; WizardForm.CancelButton.Visible:=true; end; if (CurStep=ssPostInstall) and MyError then Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n); end; |
Отправлено: 16:25, 12-06-2011 | #1863 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать
tiestos, Можно так так попробовать:BGImage.bmp - картинка, которую показываеш на финишной странице.
Теоретически класс объекта WizardForm.RunList подходит для procedure LoadBGBmpFromFile(FileName: String; OffsetX, OffsetY: Integer); прикрепил твой скрипт во вложении. Чуть не забыл, LoadBGBmpFromFile работает только на расширенной версии компилятора. |
||||
------- Последний раз редактировалось Gnom_aka_Lexander, 12-06-2011 в 17:19. Отправлено: 17:09, 12-06-2011 | #1864 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать http://rghost.ru/10512071 кто может мне обеденить скрипт с isdon'ом?
|
Отправлено: 18:38, 12-06-2011 | #1865 |
![]() Старожил Сообщения: 348
|
Профиль | Отправить PM | Цитировать tiestos, ИМХО, картинка не подходит к CRYSIS Warhead. Это во второй части действия происходят в городе а в Warhead должно быть как-то так:
![]() |
Отправлено: 19:16, 12-06-2011 | #1866 |
![]() Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Пожалуйста помогите, как убрать кнопку отключения музыки инсталятора со страници приветствия?????
И как в скине написать вот такое http://s2.ipicture.ru/uploads/20110612/QWirhlhR.png . Я не могу разобраться с IS Skin Builder! Помогите Плиз!!!1 |
------- Отправлено: 21:03, 12-06-2011 | #1867 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:59, 12-06-2011 | #1868 |
![]() Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Спасибо большое!!! А по поводу удаления кнопки на страничке приветствия????
|
------- Отправлено: 22:06, 12-06-2011 | #1869 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Спасибо большое!!! нажми Полезное сообщение А по поводу удаления кнопки я не знаю скрипт нужно вылаживать там тебе помогут
|
Отправлено: 22:15, 12-06-2011 | #1870 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [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 |
|