|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать парни как убрать страницу установить , что бы продолжалась автоматом установка
|
Последний раз редактировалось pollipen, 23-08-2017 в 13:24. Отправлено: 13:02, 23-08-2017 | #2041 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Цитата pollipen:
|
|
Отправлено: 14:28, 23-08-2017 | #2042 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать pollipen
Скрытый текст
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application [Files] Source: "compiler:\*"; DestDir: "{app}"; Flags: ignoreversion [Code_] procedure CurPageChanged(CurPageID: Integer); begin case CurPageID of wpSelectDir: WizardForm.NextButton.Caption:= 'Установить' end; end; function ShouldSkipPage(PageID: Integer): Boolean; begin if (PageID = 8) or(PageID = 10) then Result:= True; end; |
------- Отправлено: 16:02, 23-08-2017 | #2043 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать что то не получается вот скрипт надо чтобы тихо продолжалась установка без пользователя (может кто поправит или подскажет)
скрипт
|
Последний раз редактировалось pollipen, 26-08-2017 в 08:38. Отправлено: 16:16, 25-08-2017 | #2044 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать парни как запустить .msi файл из установщика, а то пишет что не является приложением win 32
|
Последний раз редактировалось pollipen, 26-08-2017 в 11:14. Отправлено: 10:35, 26-08-2017 | #2045 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 11:35, 26-08-2017 | #2046 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата pollipen:
Exec(ExpandConstant('{tmp}\DirectX.exe'), '/q', '', SW_Hide, ewWaitUntilTerminated , ErrorCode); Цитата pollipen:
Скрытый текст
Поправил: #define MyAppName "My Program" #define MyAppVersion "1.5" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "MyProg.exe" [Setup] AppId={{820F943F-D4F5-47B0-A3E3-B4568C5A07EC} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=setup Compression=lzma SolidCompression=yes DisableWelcomePage=yes DisableReadyPage=True DisableReadyMemo=True DisableFinishedPage=True [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\ww\Desktop\Soft\DirectX.exe"; DestDir: "{tmp}"; Flags: ignoreversion [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent [Code] function InitializeSetup(): Boolean; var ErrorCode: Integer; begin if not FileExists(ExpandConstant('{tmp}\DirectX.exe')) then ExtractTemporaryFile('DirectX.exe'); Exec(ExpandConstant('{tmp}\DirectX.exe'), '/q', '', SW_Hide, ewWaitUntilTerminated , ErrorCode); result:=True; end; #define A = (Defined UNICODE) ? "W" : "A" const WM_USER = $0400; PBM_SETPOS = (WM_USER + 2); GWL_WNDPROC = (-4); GWL_USERDATA = (-21); function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external 'CallWindowProc{#A}@user32.dll stdcall'; function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; external 'MulDiv@kernel32.dll stdcall'; var InstPercentLabel: TLabel; /////////////////////////////// procedure CreateInstallingPage; begin { InstPercentLabel } InstPercentLabel := TLabel.Create(WizardForm); with InstPercentLabel do begin Parent := WizardForm.ProgressGauge; Align := alClient; Alignment := taCenter; Layout := tlCenter; Transparent := True; end; end; /////////////////////////////////////////////////////////////////////////////////////// function ProgressGaugeWndProc(hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; begin case Msg of PBM_SETPOS: begin Result := CallWindowProc(GetWindowLong(hWnd, GWL_USERDATA), hWnd, Msg, wParam, lParam); with WizardForm.ProgressGauge do InstPercentLabel.Caption := Format('%d %%', [MulDiv(Position, 100, Max)]); end; else Result := CallWindowProc(GetWindowLong(hWnd, GWL_USERDATA), hWnd, Msg, wParam, lParam); end; end; /////////////////////////// procedure SubclassControls; begin { ProgressGauge } with WizardForm.ProgressGauge do begin if GetWindowLong(Handle, GWL_USERDATA) = 0 then SetWindowLong(Handle, GWL_USERDATA, SetWindowLong(Handle, GWL_WNDPROC, CallbackAddr('ProgressGaugeWndProc'))); end; end; ///////////////////////////// procedure UnSubclassControls; begin { ProgressGauge } with WizardForm.ProgressGauge do begin if GetWindowLong(Handle, GWL_USERDATA) > 0 then SetWindowLong(Handle, GWL_WNDPROC, GetWindowLong(Handle, GWL_USERDATA)); end; end; function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload'; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID=wpInstalling then begin WizardForm.BorderStyle:=bsDialog; WizardForm.MainPanel.Visible:=False; WizardForm.Width:=ScaleX(320); WizardForm.Height:=ScaleY(91); WizardForm.InnerNotebook.Left:=ScaleX(7); WizardForm.InnerNotebook.Top:=ScaleY(7); WizardForm.InnerNotebook.Width:=ScaleX(300); WizardForm.StatusLabel.Left:=ScaleX(0); WizardForm.StatusLabel.Top:=ScaleY(0); WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.FileNameLabel.Left:=ScaleX(0); WizardForm.FileNameLabel.Top:=ScaleY(17); WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:=ScaleY(15); WizardForm.ProgressGauge.Left:=ScaleX(0); WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:=ScaleX(122); WizardForm.CancelButton.Top:=ScaleY(70); WizardForm.Left:=GetSystemMetrics(16)-ScaleX(325); WizardForm.Top:=GetSystemMetrics(17)-ScaleX(68); end; case CurPageID of wpSelectDir: WizardForm.NextButton.Caption:= 'Установить' end; if CurPageID=wpFinished then begin WizardForm.Width:=502;{Размер окна по горизонтали} WizardForm.Height:=392;{Размер окна по вертикали} WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние} end; end; //////////////////////// var Label1: TLabel; procedure btnOnClick(Sender: TObject); var rcode: integer; begin ShellExec('open','http://forum.oszone.net','', '', SW_SHOW, ewNoWait, rCode); end; procedure btnOnClick2(Sender: TObject); begin Label1.Font.Color := clred; end; procedure btnOnClick3(Sender: TObject); begin Label1.Font.Color := clBlue; end; ///////////////// procedure InitializeWizard(); begin //Выносим кнопку "Отмена" на передний план WizardForm.CancelButton.BringToFront; // ***** WizardForm.Bevel1.Hide; // ***** WizardForm.DirBrowseButton.Hide; // ***** with WizardForm.DirEdit do begin Width := ScaleX(417); AutoSelect := False; Enabled := False; end; // ***** Label1 := TLabel.Create(WizardForm); with Label1 do begin Parent := WizardForm; Cursor := crHand; Caption := 'Дополнительный софт'; Font.Color := clBlue; Font.Height := -16; Font.Name := 'Tahoma'; Font.Style := [fsUnderline]; ParentFont := False; Transparent := True; OnClick := @btnOnClick; OnMouseEnter := @btnOnClick2; OnMouseLeave := @btnOnClick3; SetBounds(ScaleX(8), ScaleY(327), Width, ScaleY(19)); end; ///////////////// /////////////////////////// CreateInstallingPage; SubclassControls; ///////////////////////////// end; function ShouldSkipPage(PageID: Integer): Boolean; begin if (PageID = 8) or(PageID = 10) then Result:= True; end; //////////////////////////// procedure DeinitializeSetup; begin if ExpandConstant('{wizardhwnd}') = '0' then Exit; UnSubclassControls; end; |
||
Отправлено: 14:13, 26-08-2017 | #2047 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать pollipen
Цитата:
тогда так function ShouldSkipPage(PageID: Integer): Boolean; begin if (PageID = 8) or(PageID = 9) or(PageID = 10) then Result:= True; end; |
|
------- Отправлено: 14:58, 26-08-2017 | #2048 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Спасибо ZVSRus выручил.
|
Отправлено: 16:28, 26-08-2017 | #2049 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Вопрос такой на Splash можно как то поставить анимацию (.gif)
|
Отправлено: 20:52, 27-08-2017 | #2050 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|