|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1269 |
Профиль | Отправить 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 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ErikPshat:
Цитата ErikPshat:
|
||
------- Отправлено: 16:33, 20-11-2018 | #151 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать nik1967, в ообщем я сделал вот такую реализацию своей идеи, можете заценить и указать на ошибки:
Готовый примар реализации чекбоксов на странице выбора папки:
#define Name "MyAppName" #define Version "1.0 Build 1234" [Setup] AppName={#Name} AppVersion={#Version} DefaultDirName={src} ;[Files] ;Source: "{app}\4GB.txt"; DestDir: "{app}"; Check: Check0(); ;Source: "{app}\2GB.txt"; DestDir: "{app}"; Check: Check1(); ;Source: "{app}\NoLimit.txt"; DestDir: "{app}"; Check: Check2(); ;Source: "{app}\Signed.txt"; DestDir: "{app}"; Check: Check3(); [Languages] Name: ru; MessagesFile: compiler:Languages\Russian.isl [Messages] ru.WizardSelectDir=Выбор папки для разделения ru.SelectDirDesc=Какую папку вы хотите разделить на части и упаковать их в PKG? ru.SelectDirLabel3=Программа разделит выбранную папку на части по размерам,%nв зависимости от сделанного вами выбора в чекбоксах. ru.SelectDirBrowseLabel=Для выбора папки, которую вам необходимо разделить, нажмите «Обзор». ru.DiskSpaceMBLabel=Требуется как минимум 2 или 4 ГБ свободного дискового пространства. [CustomMessages] ru.Check4GB=Разделить папку на части по 4 Гигабайта ru.Check2GB=Разделить папку на части по 2 Гигабайта ru.CheckNot=Не разделять папку, упаковать целиком ru.CheckSig=Подписать PKG (создать "retail_signed.pkg") [ Code ] var Check: array [0..3] of TCheckBox; function Check0(): boolean; begin Result := Check[0].Checked; end; function Check1(): boolean; begin Result := Check[1].Checked; end; function Check2(): boolean; begin Result := Check[2].Checked; end; function Check3(): boolean; begin Result := Check[3].Checked; end; procedure GetCheck(Sender: TObject); begin case sender of Check[0]: if Check[0].Checked then begin Check[1].Checked := False; Check[2].Checked := False; end; Check[1]: if Check[1].Checked then begin Check[2].Checked := False; Check[0].Checked := False; end; Check[2]: if Check[2].Checked then begin Check[1].Checked := False; Check[0].Checked := False; end; end; end; procedure InitializeWizard(); begin Check[0] := TCheckBox.Create(WizardForm); with Check[0] do begin Parent := WizardForm.SelectDirPage; Checked := True; Left:= ScaleX(4); Top := ScaleY(115); Width:=ScaleX(280); OnClick := @GetCheck; // Будет 4GB.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files] Caption := ExpandConstant(' {cm:Check4GB}'); end; Check[1] := TCheckBox.Create(WizardForm); with Check[1] do begin Parent := WizardForm.SelectDirPage; Left:= ScaleX(4); Top := ScaleY(135); Width:=ScaleX(280); OnClick := @GetCheck; // Будет 2GB.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files] Caption := ExpandConstant(' {cm:Check2GB}'); end; Check[2] := TCheckBox.Create(WizardForm); with Check[2] do begin Parent := WizardForm.SelectDirPage; Left:= ScaleX(4); Top := ScaleY(155); Width:=ScaleX(350); OnClick := @GetCheck; // Будет NoLimit.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files] Caption := ExpandConstant(' {cm:CheckNot}'); end; Check[3] := TCheckBox.Create(WizardForm); with Check[3] do begin Parent := WizardForm.SelectDirPage; Left:= ScaleX(4); Top := ScaleY(185); Width:=ScaleX(280); // Будет Signed.txt, если имеется в них необходимость, нужно раскомментировать их в секции [Files] Caption := ExpandConstant(' {cm:CheckSig}'); end; end; Только какие потом отлавливать переменные я пока не придумал )))
|
Отправлено: 19:52, 20-11-2018 | #152 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ErikPshat:
|
|
Отправлено: 19:56, 20-11-2018 | #153 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Здравствуйте всем! Господа-товарищи, я так понимаю, в таком виде
Скрытый текст
[Code] var Check: array [0..3] of TCheckBox; function Check_0(): Boolean; begin Result:= Check[0].Checked; end; function Check_1(): Boolean; begin Result:= Check[1].Checked; end; function Check_2(): Boolean; begin Result:= Check[2].Checked; end; function Check_3(): Boolean; begin Result:= Check[3].Checked; end; procedure Check0(Sender: TObject); begin if Check[0].Checked then begin Check[1].Checked:= False; Check[2].Checked:= False; Check[3].Checked:= False; end; if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[0].Checked:= True; end; procedure Check1(Sender: TObject); begin if Check[1].Checked then begin Check[0].Checked:= False; Check[2].Checked:= False; Check[3].Checked:= False; end; if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[1].Checked := True; end; procedure Check2(Sender: TObject); begin if Check[2].Checked then begin Check[0].Checked:= False; Check[1].Checked:= False; Check[3].Checked:= False; end; if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[2].Checked:= True; end; procedure Check3(Sender: TObject); begin if Check[3].Checked then begin Check[0].Checked:= False; Check[1].Checked:= False; Check[2].Checked:= False; end; if (Check[0].Checked = False) and (Check[1].Checked = False) and (Check[2].Checked = False) and (Check[3].Checked = False) then Check[3].Checked:= True; end; procedure InitializeWizard(); begin Check[0]:= TCheckBox.Create(WizardForm); with Check[0] do begin Parent:= WizardForm.SelectTasksPage; Checked:= True; Left:=ScaleX(4); Top:= ScaleY(90); Width:=ScaleX(280); OnClick:= @Check0; // Будет Win_7.txt Caption:= ' Стандартные иконки в стиле Win 7'; end; Check[1]:= TCheckBox.Create(WizardForm); with Check[1] do begin Parent:= WizardForm.SelectTasksPage; Left:=ScaleX(4); Top:= ScaleY(115); Width:=ScaleX(280); OnClick:= @Check1; // Будет Win_10.txt Caption:= ' Стандартные иконки в стиле Win 10'; end; Check[2]:= TCheckBox.Create(WizardForm); with Check[2] do begin Parent:= WizardForm.SelectTasksPage; Left:=ScaleX(4); Top:= ScaleY(140); Width:=ScaleX(350); OnClick:= @Check2; // Будет Win_10_2.txt Caption:= ' Станадартные иконки в стиле Win 7 + Win 10'; end; Check[3]:= TCheckBox.Create(WizardForm); with Check[3] do begin Parent:= WizardForm.SelectTasksPage; Left:=ScaleX(4); Top:= ScaleY(165); Width:=ScaleX(280); OnClick:= @Check3; // Будет Dop_Win_7.txt Caption:= ' Дополнительные иконки в стиле Win 7'; end; end; чекбоксы прикрутить нельзя к самостоятельно созданной странице, только к стандартным? |
Последний раз редактировалось Chudmin, 21-11-2018 в 11:15. Отправлено: 11:06, 21-11-2018 | #154 |
Ветеран Сообщения: 858
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось Dodakaedr, 21-11-2018 в 16:27. Отправлено: 15:13, 21-11-2018 | #155 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
Отправлено: 20:57, 21-11-2018 | #156 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Дорогие форумчане, интересует следующий вопрос.
Возможно ли как-нибудь уловить ошибки которые возникают при установке программы? Например: если ставить с пацарапанного или грязного диска получим ошибку "The Source file is corrupted", которая успешно отобразится на экране. Мне же нужно название этой ошибки отправить на сервер (Или возможно есть другой способ). У кого какие мысли возникают? |
Отправлено: 11:38, 22-11-2018 | #157 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Здравствуйте всем! Подскажите пожалуйста, функция UpdateReadyMemo действует только для стандартных страниц, или можно включать сюда и созданные пользователем тоже.
|
Отправлено: 12:33, 22-11-2018 | #158 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Цитата RbwKz:
/LOG Указывает инсталлятору создать log-файл в папке TEMP для подробного отчета о действиях и событиях при установке, обработке записей секции [Run], предпринятых в ходе установки. Применяется при отслеживании ошибок. Например, если вы подозреваете, что файл не был заменен, хотя должен был, log-файл сообщит, что файл был действительно пропущен и почему это произошло. Log-файлу присваивается уникальное имя на базе текущей даты. (Существующие файлы не перезаписываются и не дополняются.) Информация, содержащаяся в log-файле, техническая и поэтому не может быть понята пользователем. Формат файла может измениться без уведомления. /LOG="filename" Параметр похож на /LOG, но в отличие от него позволяет указать фиксированный путь/имя файла для log-файла. Если файл с указанным именем уже существует, он будет заменен. Если файл не может быть создан, установка прервется и выдаст сообщение об ошибке. |
|
Отправлено: 17:10, 22-11-2018 | #159 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать I want create custom setup with inno setup like this:
https://drive.google.com/open?id=1L2...MJ7viq2KvhR6sA Please help for iss code! |
Отправлено: 11:30, 02-12-2018 | #160 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|