|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Скрипты Inno Setup. Помощь и советы [часть 6]
|
Ветеран Сообщения: 1273 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: |
|
Отправлено: 19:06, 28-03-2013 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать audiofeel, можно создать бевел и внутри него разместить лейбл, чтобы получилась обводка. Я бы оставил так, но это дело вкуса. С таск листом наверное можно что-то сделать, но я незнаю как - с оформлением инсталов я на "вы", больше предпочитаю стандартный спартанский интерфейс.
|
Отправлено: 03:55, 31-03-2013 | #41 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать saurn, в тегах кода скрипта используй [Code] начальная жирная квадратная скобка и не будет конфликты с тегом и прочих символов перед словом Code.
|
Отправлено: 08:15, 31-03-2013 | #42 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать Всем привет. Помогите пожалуйста с кодом. Нужно внести ключ в реестр в зависимости от разрешения экрана, если FullHD и выше то ключ один, если ниже то ключ другой.
|
Отправлено: 10:48, 31-03-2013 | #43 |
Пользователь Сообщения: 130
|
Профиль | Отправить PM | Цитировать Цитата audiofeel:
[*Code] var GroupBox_DirPage: TNewGroupBox; procedure InitializeWizard(); begin GroupBox_DirPage := TNewGroupBox.Create(WizardForm); GroupBox_DirPage.Parent := WizardForm.SelectDirPage; GroupBox_DirPage.Left := ScaleX(0); GroupBox_DirPage.Top := ScaleY(0); GroupBox_DirPage.Width := ScaleX(416); GroupBox_DirPage. Height := ScaleY(140); GroupBox_DirPage.Caption := 'Папка установки'; WizardForm.SelectDirBitmapImage.Left := ScaleX(10); WizardForm.SelectDirBitmapImage.Top := ScaleY(20); WizardForm.SelectDirBitmapImage.Parent := GroupBox_DirPage; WizardForm.SelectDirLabel.Left := ScaleX(54); WizardForm.SelectDirLabel.Top := ScaleY(20); WizardForm.SelectDirLabel.Width := ScaleX(300); WizardForm.SelectDirLabel.Parent := GroupBox_DirPage; WizardForm.SelectDirBrowseLabel.Left := ScaleX(10); WizardForm.SelectDirBrowseLabel.Top := ScaleY(54); WizardForm.SelectDirBrowseLabel.Width := ScaleX(405); WizardForm.SelectDirBrowseLabel.Parent := GroupBox_DirPage; WizardForm.DirEdit.Left := ScaleX(10); WizardForm.DirEdit.Top := ScaleY(87); WizardForm.DirEdit.Width := ScaleX(317); WizardForm.DirEdit.Parent := GroupBox_DirPage; WizardForm.DirBrowseButton.Left := ScaleX(332); WizardForm.DirBrowseButton.Top := ScaleY(86); WizardForm.DirBrowseButton.Parent := GroupBox_DirPage; WizardForm.DiskSpaceLabel.Left := ScaleX(10); WizardForm.DiskSpaceLabel.Top := ScaleY(116); WizardForm.DiskSpaceLabel.Width := ScaleX(405); WizardForm.DiskSpaceLabel.Parent := GroupBox_DirPage; end; |
|
------- Отправлено: 13:32, 31-03-2013 | #44 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста как лучше организовать инсталлер:
имеется 3 вида компонентов: компоненты №1 - это компоненты, которые не много занимают места и часто обновляются; компоненты №2 - это компоненты, которые много занимают и редко обновляются; компоненты №3 - это компоненты, которые не сильно много места, но больше чем компоненты №1 и не обновляются вообще, ну т.е. устанавливаются только 1 раз в принципе. Из этого следует, что рационально бы их все устанавливать раздельно, т.е. сделать 3 разных инсталла и обновлять по отдельности, но хочется сделать 1 общий инсталл на всё и в зависимости от того есть ли с инсталлером определённый файл содержащий компонент №1, №2 или №3, предлагало к установке соответствующие компоненты в окне выборов компонентов, т.е. глубо говоря структура была бы такой: Install.exe - сам установщик xxx1.xxx - файл с компонентами №1 xxx2.xxx - файл с компонентами №2 xxx3.xxx - файл с компонентами №3 и чтобы xxx1-3.xxx не были просто архивами, чтобы их отдельно нельзя было распаковать. можно ли реализовать такое? |
Отправлено: 14:23, 31-03-2013 | #45 |
Пользователь Сообщения: 107
|
Профиль | Отправить PM | Цитировать habib2302 спасибо за скрипт dead-space-2-fenixx-ot-vasyakrn.7z . Именно єто я искал !!!
|
Отправлено: 21:23, 31-03-2013 | #46 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать ABBAT,
Цитата ABBAT:
пример только через код: или так, если используешь секцию [Registry]: можно и через функцию WinApi GetDeviceCaps(...) пример: ========================================================== saurn, Цитата saurn:
![]() saurn, Цитата saurn:
у того примера 2 минуса 1. использование необязательной в расширенной версии инно библиотеки innocallback.dll для получения адреса процедуры... 2. использование таймера у которого по умолчанию задержка + он стоит в очередях и задержка может усилиться для себя уже сделал другой пример, но ещё не выкладывал принцип такой: прогрессбар является наследником TWinControl или другим словом он окно, а значит для него действует стандартная оконная функция винды (http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx) , как и для всех остальных окон (форма, статик текст и прочие наследники) но в инно мы к ней по дефоту доступа не имеем и поэтому установим ему свою такую же функцию дело в том что окно получает сообщения и поле того как оно пройдёт (если пройдёт, тк мы если можем их получать можем и обнулять и прочее) будет выполнен код для этого сообщения (закрыть окно, свернуть, отрисовать нажатие кнопки...) и прогрессбар каждый раз перед отрисовкой новой позиции получает сообщение PBM_SETPOS и именно в этот момент мы можем обновлять проценты перед тем как сообщение пойдёт дальше пример: ======================================================================= Lex_from_Belarus, Цитата Lex_from_Belarus:
вот пример из двух функций (вторая, которая не закомментирована работает быстрее, но в познавательных целях оставил первую (у меня какая-то странная тяга к массивам и первая на их основе ![]() для этого примера положи рядом с экзешником инсталла текстовый файл Install.txt содержащий: The Elder Scrolls V - Skyrim на английском языке на русском языке |
||||
Отправлено: 03:30, 01-04-2013 | #47 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Lex_from_Belarus, а я сделал сложнее (наверное, хотя для меня этот вариант проще). В зависимости от нахождения файла рядом (ну или ещё где - путь задаётся в шапке скрипта) с инсталлятором будет отображаться компонент (ну или не будет). If components exist
Цитата:
|
|
------- Отправлено: 08:37, 01-04-2013 | #48 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать Johny777, Большое спасибо дружище за примеры (GetDeviceCaps по моему более элегантна)
Ещё вопрос, можно убрать иконку инсталятора с панели задач (не критично просто интересно кто нибудь слышал о током) |
Отправлено: 09:19, 01-04-2013 | #49 |
Пользователь Сообщения: 130
|
Профиль | Отправить PM | Цитировать alert30, Можно и проще.
Посто скопировать в редакторе как UBB-код ![]() получется вот так [Setup] AppName=My Program AppVersion=1.5 AppVerName=My Program 1.5 DefaultDirName={pf}\My Program DefaultGroupName=My Program OutputDir=. OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked [Files] Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion [Icons] Name: {group}\My Program; Filename: {app}\MyProg.exe Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe} Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe; Tasks: desktopicon [Run] Filename: {app}\MyProg.exe; Description: {cm:LaunchProgram,My Program}; Flags: nowait postinstall skipifsilent |
Отправлено: 10:22, 01-04-2013 | #50 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 |
|