![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Пользователь Сообщения: 131
|
Профиль | Сайт | Отправить PM | Цитировать Еще раз здравствуйте.
Вот наткнулся на такой инсталлятор: ![]() Если флажок напротив "Я ознакомлен..." отсутствует - кнопка "Далее" будет неактивна (в любом случае). Я попытался сделать нечто похожее (за основу инсталлятора взят ЭТОТ скрипт). Сначала использовал стандартный пример: создал чекбокс function Read: Boolean; begin Result:= BtnGetEnabled(hNextBtn); end; procedure ReadClick(hBtn:HWND); var Check: Boolean; begin Check:=BtnGetChecked(hBtn); BtnSetEnabled(hNextBtn, Check); end; if BtnGetChecked(ReadCheck)=true then BtnSetEnabled(hNextBtn, true) else BtnSetEnabled(hNextBtn, false); if BtnGetChecked(ReadCheck)=true then WizardForm.NextButton.Enabled:= true else WizardForm.NextButton.Enabled:= false; 1. Обычно, если на диске недостаточно места, кнопка "Далее" будет неактивной. У меня же после установки флажка она становилась активной (независимо от свободного места). 2. Также "Далее" могла стать активной после выбора диска, на котором было достаточно места, независимо от того, был установлен флажок ("Я...") или нет. После этого решил в GetFreeSpaceCaption заменить BtnSetEnabled(hNextBtn,not (GetArrayLength(ADisk)>0)); WizardForm.NextButton.Enabled:=not (GetArrayLength(ADisk)>0); if BtnGetChecked(ReadCheck)=true then BtnSetEnabled(hNextBtn,not (GetArrayLength(ADisk)>0)) else BtnSetEnabled(hNextBtn, false); if BtnGetChecked(ReadCheck)=true then WizardForm.NextButton.Enabled:=not (GetArrayLength(ADisk)>0) else WizardForm.NextButton.Enabled:= false; Прошу помощи у всех, кто в этом разбирается. |
------- Отправлено: 02:21, 15-07-2015 | #791 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 232
|
Профиль | Отправить PM | Цитировать nik1967, извини, еще один небольшой вопрос : в твоем скрипте (ну или не совсем твоем, но автора мы то не знаем, хотя спасибо ему большое) создается новая страница. Я изучал код, но так и не понял где найти идентификатор этой страницы страницы чтобы предположим добавить на нее картинку или включить ее в панель ну и т.д. Для конкретного инсталятора оно может и не надо, просто изучить хочу. Конкретного руководства по по паскалю для Inno Setup найти не могу, а изучать весь паскаль нет времени. Если не трудно подсажи , пожалуйста.
|
Последний раз редактировалось Uragan66, 15-07-2015 в 09:18. Отправлено: 09:09, 15-07-2015 | #792 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Uragan66, Parent:= MyNewPage.Surface
|
------- Отправлено: 10:22, 15-07-2015 | #793 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Uragan66, если в качестве родителя, то да, как и написал Dodakaedr: Parent:= MyNewPage.Surface;. А если нужно именно id, то MyNewPage.id
|
------- Отправлено: 11:18, 15-07-2015 | #794 |
Старожил Сообщения: 232
|
Профиль | Отправить PM | Цитировать
Dodakaedr, nik1967, Спасибо большое, но ничего у меня не получается, не воспринимает ее компилятор как MyNewPage , ошибка как не в одном то в другом месте, например в этом
коде
|
||||
Последний раз редактировалось Uragan66, 15-07-2015 в 12:56. Отправлено: 12:37, 15-07-2015 | #795 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Uragan66, страница кастомная, создана пользователем, и к WizardForm отношения не имеет. То есть вместо WizardForm.MyNewPage.Color := $00AB663D; нужно MyNewPage.Surface.Color := $00AB663D;
|
------- Последний раз редактировалось nik1967, 15-07-2015 в 13:06. Отправлено: 12:57, 15-07-2015 | #796 |
Старожил Сообщения: 232
|
Профиль | Отправить PM | Цитировать nik1967, спасибо !
|
Отправлено: 16:28, 15-07-2015 | #797 |
Старожил Сообщения: 232
|
Профиль | Отправить PM | Цитировать Всем доброго времени суток ! Может кто подскажет как в этом
коде
[code]
procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean);external 'iswin7_add_glass@files:iswin7.dll stdcall'; procedure iswin7_add_button(Handle:HWND);external 'iswin7_add_button@files:iswin7.dll stdcall'; procedure iswin7_free;external 'iswin7_free@files:iswin7.dll stdcall'; // функция проверки того, сработает iswin7, или нет function GlassEnabled:Boolean;external 'GlassEnabled@files:dwmEnabled.dll stdcall'; // Сделал отдельную процедуру создания лого,чтоб удобно было - вызываем и указываем размеры procedure LogoImage(ImgLeft,ImgTop,ImgWidth,ImgHeight:Integer); var BtnPanel:TPanel; begin ExtractTemporaryFile('gnom.bmp'); //-----------start----------LOGO-----------// BtnPanel:=TPanel.Create(WizardForm) BtnPanel.SetBounds(ImgLeft,ImgTop,ImgWidth,ImgHeight); BtnPanel.Cursor:=crHand BtnPanel.ParentColor := True; //BtnPanel.OnClick:=@logoOnClick BtnPanel.Parent:=WizardForm with TBitmapImage.Create(WizardForm) do begin Parent := BtnPanel; SetBounds(0,0,BtnPanel.Width,BtnPanel.Height); // Собственно, применение if GlassEnabled then BackColor := BtnPanel.Color else BackColor := clNone; ReplaceColor := clBlack; // это обязательно ReplaceWithColor := clNone; Bitmap.LoadFromFile(ExpandConstant('{tmp}\gnom.bmp')); end; end; procedure InitializeWizard16(); begin if GlassEnabled then WizardForm.WelcomeLabel2.Caption:='Включено' else WizardForm.WelcomeLabel2.Caption:='Выключено'; // Необходимо добавлять каждую кнопку расположенную на стекле // до инициализации стекла для того что бы не было дыр )) iswin7_add_button(WizardForm.BackButton.Handle); iswin7_add_button(WizardForm.NextButton.Handle); iswin7_add_button(WizardForm.CancelButton.Handle); // Параметр True не трогать он для htuos )) iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True); // Вызываем лого, и говорим ему координаты. LogoImage(ScaleX(618),ScaleY(0),ScaleX(69),ScaleY(50)); end; procedure DeinitializeSetup11(); begin iswin7_free; end; |
Отправлено: 21:00, 16-07-2015 | #798 |
Пользователь Сообщения: 131
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 05:55, 17-07-2015 | #799 |
Старожил Сообщения: 232
|
Профиль | Отправить PM | Цитировать Sotonisto, так уже пробовал
Скрытый текст
[code]
procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean);external 'iswin7_add_glass@files:iswin7.dll stdcall'; procedure iswin7_add_button(Handle:HWND);external 'iswin7_add_button@files:iswin7.dll stdcall'; procedure iswin7_free;external 'iswin7_free@files:iswin7.dll stdcall'; // функция проверки того, сработает iswin7, или нет function GlassEnabled:Boolean;external 'GlassEnabled@files:dwmEnabled.dll stdcall'; // Сделал отдельную процедуру создания лого,чтоб удобно было - вызываем и указываем размеры procedure LogoImage(ImgLeft,ImgTop,ImgWidth,ImgHeight:Integer); var BtnPanel:TPanel; begin ExtractTemporaryFile('gnom.bmp'); //-----------start----------LOGO-----------// BtnPanel:=TPanel.Create(WizardForm) BtnPanel.SetBounds(ImgLeft,ImgTop,ImgWidth,ImgHeight); BtnPanel.Cursor:=crHand BtnPanel.ParentColor := True; //BtnPanel.OnClick:=@logoOnClick BtnPanel.Parent:=WizardForm with TBitmapImage.Create(WizardForm) do begin Parent := BtnPanel; SetBounds(0,0,BtnPanel.Width,BtnPanel.Height); // Собственно, применение if GlassEnabled then BackColor := BtnPanel.Color else BackColor := clNone; ReplaceColor := clBlack; // это обязательно ReplaceWithColor := clNone; Bitmap.LoadFromFile(ExpandConstant('{tmp}\gnom.bmp')); end; end; procedure LogoOnClick(Sender: TObject); var ErrorCode: Integer; begin ShellExec('open', 'http://www.google.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); end; procedure InitializeWizard16(); begin if GlassEnabled then WizardForm.WelcomeLabel2.Caption:='Включено' else WizardForm.WelcomeLabel2.Caption:='Выключено'; // Необходимо добавлять каждую кнопку расположенную на стекле // до инициализации стекла для того что бы не было дыр )) iswin7_add_button(WizardForm.BackButton.Handle); iswin7_add_button(WizardForm.NextButton.Handle); iswin7_add_button(WizardForm.CancelButton.Handle); // Параметр True не трогать он для htuos )) iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True); // Вызываем лого, и говорим ему координаты. LogoImage(ScaleX(618),ScaleY(0),ScaleX(69),ScaleY(50)); end; procedure DeinitializeSetup11(); begin iswin7_free; end; |
Отправлено: 08:03, 17-07-2015 | #800 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|