|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3] |
|
Скрипты Inno Setup. Помощь и советы [часть 3]
|
Ветеран Сообщения: 1133 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 |
|
------- Отправлено: 00:28, 04-11-2010 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать vovka1021 DisableReadyPage=true и не парся насчет той фигни
|
Отправлено: 22:38, 07-06-2011 | #1811 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать AllowNoIcons=true пробовал не канает.
![]() ![]() просто в других же работает, а в этот не могу засунуть. охото добить этот скрипт, а убрать это самый легкий способ! insombia, DisableReadyPage=true это же просто убирает страницу готовности. знающие люди помогите!!! http://rghost.ru/9833951 |
Последний раз редактировалось vovka1021, 07-06-2011 в 22:58. Отправлено: 22:39, 07-06-2011 | #1812 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать DisableReadyPage не работает???
vovka1021 кинь свой скрипт(желательно залей на rghost vovka1021 ну так уберёт и не будеш парится |
Отправлено: 22:42, 07-06-2011 | #1813 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать [Messages]
rus.NoProgramGroupCheck2=Не создавать папку в меню «Пуск» У тебя на другом скриншоте не показано что оно будет создавать в пуске папку так что оно по идее пашет как в [LangOptions] сделать чтобы во всём инсталяторе был какой то шрифт? |
Отправлено: 22:58, 07-06-2011 | #1814 |
![]() Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:12, 07-06-2011 | #1815 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать что надо изменить в скрипте чтобы сначала ишла роспаковка просто файлов запакованых Inno Setup'ом, а потом самых архивов
вот скрипт #define GameName "Crysis Warhead" #define NeedSize "10000000000" #define precomp038 #define ExeName "Crysis2Launcher.exe" #define ExeDir "bin32\" [Setup] 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 SetupIconFile=iconset.ico Compression=lzma2/ultra64 InternalCompressLevel=ultra64 [Types] Name: "full"; Description: "Full installation"; Flags: iscustom #endif [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Users\ntrx\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 [Run] Filename: "{src}\Redist\dxwebsetup.exe"; StatusMsg: "Обновление DirectX..."; Flags: waituntilterminated Filename: "{src}\Redist\vcredist_x86_2005_sp1.exe"; Parameters: "/q"; StatusMsg: "Установка Microsoft Visual C++ 2005 SP1 Redist..."; Flags: runhidden waituntilterminated ; [Icons] Name: {group}\{#GameName}; Filename: {app}\{#ExeDir}{#ExeName}; WorkingDir: {app}\{#ExeDir}; Comment: {#GameName}; Name: {group}\Удалить игру; Filename: {app}\Uninstall\unins000; WorkingDir: {app}\Uninstall\; Comment: Удалить игру; Name: "{commondesktop}\{#GameName}"; Filename: "{app}\{#ExeDir}{#ExeName}"; WorkingDir: "{app}\{#ExeDir}"; Comment: "{#GameName}"; Tasks: desktopicon; [CustomMessages] russian.ExtractedFile=Распаковывается файл: russian.CancelButton=Отменить распаковку russian.Error=Ошибка распаковки! [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.FinishedPage.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; 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; Font.Style:=WizardForm.WelcomeLabel2.Font.Style; Caption:=WizardForm.WelcomeLabel2.Caption; Parent:=WizardForm.WelcomeLabel2.Parent 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; 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 Font.Name:=WizardForm.FinishedLabel.Font.Name; Font.Size:=WizardForm.FinishedLabel.Font.Size; Font.Color:=clgreen; 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 = ssInstall 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, 30, ExpandConstant('{src}\muzk.arc'), ExpandConstant('{app}'),false,CallBack, '', '', '') ISSRepExtract ( 0, OveralPct, 20, ExpandConstant('{app}\muzk.srep'), ExpandConstant('{app}\muzk.pcf'), '', true, CallBack) ISPrecompExtract( 0, OveralPct, 30, ExpandConstant('{app}\muzk.pcf'), ExpandConstant('{app}\muzk.7z'),true, CallBack) IS7ZipExtract ( 0, OveralPct, 20, 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; |
Последний раз редактировалось jameszero, 08-06-2011 в 16:06. Причина: тег [code] Отправлено: 12:57, 08-06-2011 | #1816 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Как сделать чтобы когда устанавлеваеш игру на какой то диск и на нём не хватает памяти то чтобы туда игру нельзя было установить игру?
|
Последний раз редактировалось insombia, 08-06-2011 в 22:46. Отправлено: 17:13, 08-06-2011 | #1817 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
[code] function GetVideoControllerName(): String; var objSWbemLocator, objSWbemServices: Variant; begin try objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); except ShowExceptionMessage; Exit; end; objSWbemServices := objSWbemLocator.ConnectServer(); objSWbemServices.Security_.ImpersonationLevel := 3; try Result := objSWbemServices.ExecQuery('SELECT Name FROM Win32_VideoController WHERE Availability=3').Item('Win32_VideoController="VideoController1"').Properties_.Item('Name').Value; except end; end; procedure InitializeWizard(); begin MsgBox(GetVideoControllerName(), mbInformation, MB_OK); end; Цитата insombia:
Цитата R.i.m.s.k.y.:
![]() |
|||
Последний раз редактировалось El Sanchez, 08-06-2011 в 20:05. Отправлено: 17:30, 08-06-2011 | #1818 |
Пользователь Сообщения: 75
|
Профиль | Отправить PM | Цитировать Как создать кликабельную кнопку на странице выбора директории установки? Мне нужно чтоб она открывала HUD сообщение с проверкой системных требований. И возможно ли ето?
![]() |
Отправлено: 17:42, 08-06-2011 | #1819 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Vamp1re, возможно, почему бы и нет? Скачай скрипт от sjwrec - в нём есть эта фича. Только чур, разбирайся сам!
|
------- Отправлено: 14:21, 09-06-2011 | #1820 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [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 |
|