|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1270 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z |
|
Отправлено: 16:09, 04-04-2018 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать TheLeon, тут без понятия. если был бы полный скрипт со всеми необходимыми файлами для работы инсталлятора, то помог.
|
------- Отправлено: 15:30, 11-05-2018 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось TheLeon, 17-05-2018 в 09:29. Отправлено: 15:47, 11-05-2018 | #32 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать TheLeon, поле тип установки и так находится на 0 отметке WizardForm.TypesCombo.Top := ScaleY(0).
Цитата TheLeon:
замените
Compression=zip/9
InternalCompressLevel=ultra CompressionThreads=2 SolidCompression=True на
Compression=lzma2/Ultra64
SolidCompression=true InternalCompressLevel=Ultra64 LZMADictionarySize=65536 LZMAMatchFinder=BT LZMANumFastBytes=273 MergeDuplicateFiles=yes |
|
------- Отправлено: 16:50, 11-05-2018 | #33 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать TheLeon, если вам нужно, чтобы инсталлятор устанавливал допы в папку с игрой, то надо делать через реестр
DefaultDirName={reg:HKxx\SubkeyName,ValueName|Default} для установки в program files добавьте в раздел setup ArchitecturesInstallIn64BitMode=x64 ArchitecturesAllowed=x86 x64 |
------- Отправлено: 21:03, 11-05-2018 | #34 |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать 1. Как сделать так, чтобы после установки запускался bat файл(в зависимости оттого какой ты компонент выбрал), от имени администратора + скрытая установка(не высвечивалась командная строка)? 2. Как через bat открыть файл(.txt) и в конце дописать строчки(если они отсутствуют, если же нет, то ничего не делать): |
Последний раз редактировалось TheLeon, 19-05-2018 в 13:27. Отправлено: 19:21, 18-05-2018 | #35 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать Цитата TheLeon:
Цитата TheLeon:
Цитата TheLeon:
Flags: ShellExec; для скрытой установки добавьте Flags: RunHidden; в зависимости от выбранного компонента добавьте Components: имя компонента; к нужным строкам из раздела run. если вам нужно добавить несколько компонентов к одной строке, то добавляйте имя компонента через пробел Components: AFP\INSTALL\AX AFP\INSTALL\ALL; |
|||
------- Отправлено: 20:32, 18-05-2018 | #36 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата habib2302:
Я и это: [решено] Замена строк в файле формата .xml предлагал, чтобы сделали здесь же на том же самом встроенном Паскале. |
|
Отправлено: 21:37, 18-05-2018 | #37 |
Ветеран Сообщения: 1270
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Скрытый текст
[Code] ///////////////////////////////////////////////// procedure VehiclesConfig(const FileName: string); var XMLDoc, XMLNodes, XMLNode: Variant; XPath: string; begin try XMLDoc := CreateOleObject('Msxml2.DOMDocument'); XMLDoc.setProperty('SelectionLanguage', 'XPath'); XMLDoc.async := False; XMLDoc.load(FileName); if XMLDoc.parseError.errorCode <> 0 then RaiseException(string(XMLDoc.parseError.reason)); XMLNode := XMLDoc.createElement('MediaPath'); XMLNode.setAttribute('Path', 'Vehicles'); XPath := '/Config/MediaPath[@Path="Media" and not(following-sibling::*[1][self::MediaPath[@Path="Vehicles"]])]/following-sibling::*[1]'; #if (Ver < 0x5050600) ; avoid VarIsNull XMLNodes := XMLDoc.selectNodes(XPath); if XMLNodes.length = 1 then XMLDoc.documentElement.insertBefore(XMLNode, XMLNodes.item(0)); #else XMLNodes := XMLDoc.selectSingleNode(XPath); if not VarIsClear(XMLNodes) then XMLDoc.documentElement.insertBefore(XMLNode, XMLNodes); #endif XMLDoc.save(FileName); except ShowExceptionMessage; finally end; end; /////////////////////////// procedure InitializeWizard; begin VehiclesConfig('{#SourcePath}\example.xml'); end; |
|
Отправлено: 13:01, 19-05-2018 | #38 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Здраствуйте. Помогите пож. объединить два кода.
К инсталятору добавил код фонового изображения используя isgsg.dll: Скрытый текст
[Setup] SourceDir=. OutputDir=Setup AppName=My Program AppVerName=1.0 AppVersion=1.0 DefaultDirName={pf}\My Program DefaultGroupName=My Program DisableWelcomePage=false DisableDirPage=false DisableProgramGroupPage=false [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Files] Source: "Fon.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs; [UninstallDelete] Type: filesandordirs; Name: "{app}" [_Code] function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload'; function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boo lean; external 'ssInitialize@files:isgsg.dll stdcall delayload'; procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload'; procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload'; procedure InitializeWizard; begin ssInitialize(GetWindowLong(MainForm.Handle,-8),0,False,1,$FF000000); ExtractTemporaryFile('Fon.jpg'); ssSetBkgImage(ExpandConstant('{tmp}')+'\Fon.jpg'); end; procedure DeinitializeSetup; begin ssDeInitialize; end; На странице InstallingPage прописал код минимизации окна: Скрытый текст
[_Code] var ResizeButton: TButton; PageResized, Show: Boolean; function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload'; function GetSystemMenu(hWnd: HWND; bRevert: BOOL): LongWord; external 'GetSystemMenu@user32.dll stdcall'; function DeleteMenu(hMenu: LongWord; uPosition, uFlags: UINT): BOOL; external 'DeleteMenu@user32.dll stdcall'; procedure MinimizeInstallPage(); begin WizardForm.MainPanel.Hide; WizardForm.Bevel1.Hide; WizardForm.Width:= ScaleX(395); WizardForm.Height:= ScaleY(142); WizardForm.Left:= GetSystemMetrics(16)-ScaleX(420); WizardForm.Top:= GetSystemMetrics(17)-ScaleX(150); WizardForm.InnerNotebook.Left:= ScaleX(10); WizardForm.InnerNotebook.Top:= ScaleY(10); WizardForm.InnerNotebook.Width:= ScaleX(370); 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(20); WizardForm.FileNameLabel.Width:= WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:= ScaleY(40); WizardForm.ProgressGauge.Width:= WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:= ScaleX(220); WizardForm.CancelButton.Top:= ScaleY(80); WizardForm.CancelButton.BringToFront; ResizeButton.Left:= ScaleX(60); ResizeButton.Top:= ScaleY(80); ResizeButton.Caption:= 'Max.'; PageResized:= True; end; procedure ResumeInstallPage(); begin WizardForm.Width:= ScaleX(503); WizardForm.Height:= ScaleY(388); WizardForm.Position:= poScreenCenter; if Show then begin WizardForm.MainPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(58)); WizardForm.MainPanel.Show; WizardForm.Bevel1.Show; end; WizardForm.InnerNotebook.SetBounds(ScaleX(40), ScaleY(72), ScaleX(417), ScaleY(237)); WizardForm.StatusLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(16)); WizardForm.FilenameLabel.SetBounds(ScaleX(0), ScaleY(16), ScaleX(417), ScaleY(16)); WizardForm.ProgressGauge.SetBounds(ScaleX(0), ScaleY(42), ScaleX(417), ScaleY(21)); WizardForm.CancelButton.SetBounds(ScaleX(412), ScaleY(327), ScaleX(75), ScaleY(23)); ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23)); ResizeButton.Caption:= 'Min.'; PageResized:= False; end; procedure ResizeButtonOnClick(Sender: TObject); begin If PageResized then ResumeInstallPage else MinimizeInstallPage; end; procedure InitializeWizard(); begin ResizeButton:= TButton.Create(WizardForm); ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23)); ResizeButton.OnClick:= @ResizeButtonOnClick; ResizeButton.Caption:= 'Min.'; ResizeButton.Hide; ResizeButton.Parent:= WizardForm; end; procedure CurPageChanged(CurPageID: Integer); begin ResizeButton.Hide; case CurPageID of wpInstalling: begin Show:= true; ResizeButton.Show; end; wpFinished: begin Show:= false; ResumeInstallPage; DeleteMenu(GetSystemMenu(WizardForm.Handle,False),$F060,0); end; end; end; procedure BtnDisable(); begin ResizeButton.Enabled := False; end; Необходимо выполнить следующее: 1. При клике на кнопку "Min" фоновое изображение закрывается 2. При клике на кнопку "Max" фоновое изображение отображается |
Последний раз редактировалось ROMKA-1977, 28-05-2018 в 11:54. Отправлено: 11:31, 28-05-2018 | #39 |
Ветеран Сообщения: 1270
|
Профиль | Отправить PM | Цитировать Цитата ROMKA-1977:
|
|
Отправлено: 17:15, 29-05-2018 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|