![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Забанен Сообщения: 7
|
Привет всем!
Примеры смотрел, но это не то. Всё очень сложно. Код реализации xml большой и не понятный. В общем задача такая Имеется NetworkCfg.xml <?xml version="1.0" encoding="UTF-8"?> <AllNetworkConfigs> <NetworkConfig isNDIS="0" canbeDelete="1" isPreferred="1"> <ConfigFileName></ConfigFileName> <UserName></UserName> <Password></Password> <LoginNumber></LoginNumber> <AutoGetAPN>0</AutoGetAPN> <APN></APN> <AutoGetDNS>1</AutoGetDNS> <MainDNS>0.0.0.0</MainDNS> <StandbyDNS>0.0.0.0</StandbyDNS> <AutoGetPDP>1</AutoGetPDP> <PDPAddress>0.0.0.0</PDPAddress> <PDPType>IP</PDPType> <AuthType>PAP</AuthType> <AskUserAndPwd>0</AskUserAndPwd> <SaveUserAndPwd>0</SaveUserAndPwd> </NetworkConfig> </AllNetworkConfigs> <?xml version="1.0" encoding="UTF-8"?> - Создаётся по умолчанию; <AllNetworkConfigs> - Создаётся по умолчанию; <NetworkConfig isNDIS="0" canbeDelete="1" isPreferred="1"> - Создаётся по умолчанию; <ConfigFileName></ConfigFileName> - Создаётся по умолчанию, но между <ConfigFileName></ConfigFileName> должно вводиться Название профиля; Например <ConfigFileName>MTS Internet</ConfigFileName> <UserName></UserName> - Создаётся по умолчанию, но между <UserName></UserName> должно вводиться Имя пользователя; Например <UserName>MTS</UserName> <Password></Password> - Создаётся по умолчанию, но между <Password></Password> должен вводиться Пароль; Например <Password>mts</Password> <LoginNumber></LoginNumber> - Создаётся по умолчанию, но между <LoginNumber></LoginNumber> должен вводиться номер дозвона; Например <LoginNumber>*99***1#</LoginNumber> <AutoGetAPN>0</AutoGetAPN> - Создаётся по умолчанию; <APN></APN> - Создаётся по умолчанию, но между <APN></APN> должна вводиться Точка доступа; Например <APN>internet.mts.ru</APN> <AutoGetDNS>1</AutoGetDNS> - Создаётся по умолчанию; <MainDNS>0.0.0.0</MainDNS> - Создаётся по умолчанию; <StandbyDNS>0.0.0.0</StandbyDNS> - Создаётся по умолчанию; <AutoGetPDP>1</AutoGetPDP> - Создаётся по умолчанию; <PDPAddress>0.0.0.0</PDPAddress> - Создаётся по умолчанию; <PDPType>IP</PDPType> - Создаётся по умолчанию; <AuthType>PAP</AuthType> - Создаётся по умолчанию; <AskUserAndPwd>0</AskUserAndPwd> - Создаётся по умолчанию; <SaveUserAndPwd>0</SaveUserAndPwd> - Создаётся по умолчанию; </NetworkConfig> - Создаётся по умолчанию; </AllNetworkConfigs> - Создаётся по умолчанию; То что в коде "но между XXX должно вводиться Название XXX; Например XXX" это должно работать в инсталляторе "вводиться в окошках" Вот код [Setup] AppName=Моё Программное Обеспечение AppVersion=1.5 ;AppVerName=Моё Программное Обеспечение 1.5 DefaultDirName={pf}\Моё Программное Обеспечение DefaultGroupName=Моё Программное Обеспечение OutputDir=. OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl" [Icons] Name: "{group}\{cm:UninstallProgram,Моё Программное Обеспечение}"; Filename: "{uninstallexe}" [CustomMessages] Russian.Caption=Настройка профиля по умолчанию Russian.Description=Настройте профиль в соответствии с вашим оператором Russian.SettingsProfile=Настройка профиля Russian.Operator=Оператор: Russian.UserName=Имя пользователя: Russian.Password=Пароль: Russian.NumberDial=Номер набора: Russian.APN=Точка доступа: [*Code] var ISCustomPage1: TWizardPage; NewGroupBox1: TNewGroupBox; NewStaticText1: TNewStaticText; NewEdit1: TNewEdit; NewStaticText2: TNewStaticText; NewEdit2: TNewEdit; NewStaticText3: TNewStaticText; NewEdit3: TNewEdit; NewStaticText4: TNewStaticText; NewEdit4: TNewEdit; NewStaticText5: TNewStaticText; NewEdit5: TNewEdit; procedure RedesignWizardForm; begin ISCustomPage1 := CreateCustomPage(wpSelectDir, CustomMessage('Caption'), CustomMessage('Description')); with ISCustomPage1.Surface do begin Name := 'ISCustomPage1'; end; NewGroupBox1 := TNewGroupBox.Create(WizardForm); with NewGroupBox1 do begin Name := 'NewGroupBox1'; Parent := ISCustomPage1.Surface; Left := ScaleX(16); Top := ScaleY(8); Width := ScaleX(377); Height := ScaleY(209); Caption := CustomMessage('SettingsProfile'); end; NewStaticText1 := TNewStaticText.Create(WizardForm); with NewStaticText1 do begin Name := 'NewStaticText1'; Parent := NewGroupBox1; Caption := CustomMessage('Operator'); Left := ScaleX(32); Top := ScaleY(31); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit1 := TNewEdit.Create(WizardForm); with NewEdit1 do begin Name := 'NewEdit1'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(28); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText2 := TNewStaticText.Create(WizardForm); with NewStaticText2 do begin Name := 'NewStaticText2'; Parent := NewGroupBox1; Caption := CustomMessage('UserName'); Left := ScaleX(32); Top := ScaleY(57); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit2 := TNewEdit.Create(WizardForm); with NewEdit2 do begin Name := 'NewEdit2'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(53); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText3 := TNewStaticText.Create(WizardForm); with NewStaticText3 do begin Name := 'NewStaticText3'; Parent := NewGroupBox1; Caption := CustomMessage('Password'); Left := ScaleX(32); Top := ScaleY(80); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit3 := TNewEdit.Create(WizardForm); with NewEdit3 do begin Name := 'NewEdit3'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(77); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText4 := TNewStaticText.Create(WizardForm); with NewStaticText4 do begin Name := 'NewStaticText4'; Parent := NewGroupBox1; Caption := CustomMessage('NumberDial'); Left := ScaleX(32); Top := ScaleY(103); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit4 := TNewEdit.Create(WizardForm); with NewEdit4 do begin Name := 'NewEdit4'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(100); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText5 := TNewStaticText.Create(WizardForm); with NewStaticText5 do begin Name := 'NewStaticText5'; Parent := NewGroupBox1; Caption := CustomMessage('APN'); Left := ScaleX(32); Top := ScaleY(127); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit5 := TNewEdit.Create(WizardForm); with NewEdit5 do begin Name := 'NewEdit5'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(124); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText1.TabOrder := 0; NewEdit1.TabOrder := 1; NewStaticText2.TabOrder := 2; NewEdit2.TabOrder := 3; NewStaticText3.TabOrder := 4; NewEdit3.TabOrder := 5; NewStaticText4.TabOrder := 6; NewEdit4.TabOrder := 7; NewStaticText5.TabOrder := 8; NewEdit5.TabOrder := 9; NewGroupBox1.TabOrder := 0; end; procedure InitializeWizard(); begin RedesignWizardForm; end; |
Отправлено: 15:03, 11-06-2012 | #241 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 238
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 15:10, 11-06-2012 | #242 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Цитата Dark_Delphin:
остальное сам допили так NextButton.Caption := GetIniString('Messages', 'ButtonNext', '', ExpandConstant('{src}\Russian.ini')); где Russian.ini это переименованный Russian.isl (для теста я его гружу снаружи, рядом с инсталлом, хоя в конечном итоге ему дорога в temp) Messages это секция ини ButtonNext это назвние ключа (в файле ButtonNext= ) можно было бы и не из ини брать, а напрямую вписывать названия, но тогда будет много копипаста можешь смело подредактировать и укоротить ини для своего инсталла (хотя считаю, что эта кнопка чистой воды понт, тк смысл = 0, если ты уже выбрал язык перед запуском инсталла или он выбрался автоматически в зависимости от настроек ) |
|
Последний раз редактировалось Johny777, 11-06-2012 в 23:06. Отправлено: 16:14, 11-06-2012 | #243 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Неадекватный:
1. Использовать уже готовый шаблон без значений NetworkCfg.xml (как в вашем посте, первый код) и методы объекта XMLDOM: 2. Использовать SaveStringToFile с длинной строкой. |
|
Последний раз редактировалось El Sanchez, 13-06-2012 в 17:19. Причина: fix Отправлено: 21:27, 11-06-2012 | #244 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать El Sanchez, что такое objXMLDoc? стандартная функция? или какой-то модуль?
|
------- Отправлено: 22:02, 11-06-2012 | #245 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
|
|
Отправлено: 22:06, 11-06-2012 | #246 |
Забанен Сообщения: 7
|
Цитата El Sanchez:
[Setup] AppName=Моё Программное Обеспечение AppVersion=1.5 ;AppVerName=Моё Программное Обеспечение 1.5 DefaultDirName={pf}\Моё Программное Обеспечение DefaultGroupName=Моё Программное Обеспечение OutputDir=. OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl" [Icons] Name: "{group}\{cm:UninstallProgram,Моё Программное Обеспечение}"; Filename: "{uninstallexe}" [CustomMessages] Russian.Caption=Настройка профиля по умолчанию Russian.Description=Настройте профиль в соответствии с вашим оператором Russian.SettingsProfile=Настройка профиля Russian.Operator=Оператор: Russian.UserName=Имя пользователя: Russian.Password=Пароль: Russian.NumberDial=Номер набора: Russian.APN=Точка доступа: [*Code] var ISCustomPage1: TWizardPage; NewGroupBox1: TNewGroupBox; NewStaticText1: TNewStaticText; NewEdit1: TNewEdit; NewStaticText2: TNewStaticText; NewEdit2: TNewEdit; NewStaticText3: TNewStaticText; NewEdit3: TNewEdit; NewStaticText4: TNewStaticText; NewEdit4: TNewEdit; NewStaticText5: TNewStaticText; NewEdit5: TNewEdit; procedure RedesignWizardForm; begin ISCustomPage1 := CreateCustomPage(wpSelectDir, CustomMessage('Caption'), CustomMessage('Description')); with ISCustomPage1.Surface do begin Name := 'ISCustomPage1'; end; NewGroupBox1 := TNewGroupBox.Create(WizardForm); with NewGroupBox1 do begin Name := 'NewGroupBox1'; Parent := ISCustomPage1.Surface; Left := ScaleX(16); Top := ScaleY(8); Width := ScaleX(377); Height := ScaleY(209); Caption := CustomMessage('SettingsProfile'); end; NewStaticText1 := TNewStaticText.Create(WizardForm); with NewStaticText1 do begin Name := 'NewStaticText1'; Parent := NewGroupBox1; Caption := CustomMessage('Operator'); Left := ScaleX(32); Top := ScaleY(31); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit1 := TNewEdit.Create(WizardForm); with NewEdit1 do begin Name := 'NewEdit1'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(28); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText2 := TNewStaticText.Create(WizardForm); with NewStaticText2 do begin Name := 'NewStaticText2'; Parent := NewGroupBox1; Caption := CustomMessage('UserName'); Left := ScaleX(32); Top := ScaleY(57); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit2 := TNewEdit.Create(WizardForm); with NewEdit2 do begin Name := 'NewEdit2'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(53); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText3 := TNewStaticText.Create(WizardForm); with NewStaticText3 do begin Name := 'NewStaticText3'; Parent := NewGroupBox1; Caption := CustomMessage('Password'); Left := ScaleX(32); Top := ScaleY(80); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit3 := TNewEdit.Create(WizardForm); with NewEdit3 do begin Name := 'NewEdit3'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(77); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText4 := TNewStaticText.Create(WizardForm); with NewStaticText4 do begin Name := 'NewStaticText4'; Parent := NewGroupBox1; Caption := CustomMessage('NumberDial'); Left := ScaleX(32); Top := ScaleY(103); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit4 := TNewEdit.Create(WizardForm); with NewEdit4 do begin Name := 'NewEdit4'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(100); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText5 := TNewStaticText.Create(WizardForm); with NewStaticText5 do begin Name := 'NewStaticText5'; Parent := NewGroupBox1; Caption := CustomMessage('APN'); Left := ScaleX(32); Top := ScaleY(127); Width := ScaleX(100); Height := ScaleY(14); end; NewEdit5 := TNewEdit.Create(WizardForm); with NewEdit5 do begin Name := 'NewEdit5'; Parent := NewGroupBox1; Left := ScaleX(136); Top := ScaleY(124); Width := ScaleX(121); Height := ScaleY(21); Text := ''; end; NewStaticText1.TabOrder := 0; NewEdit1.TabOrder := 1; NewStaticText2.TabOrder := 2; NewEdit2.TabOrder := 3; NewStaticText3.TabOrder := 4; NewEdit3.TabOrder := 5; NewStaticText4.TabOrder := 6; NewEdit4.TabOrder := 7; NewStaticText5.TabOrder := 8; NewEdit5.TabOrder := 9; NewGroupBox1.TabOrder := 0; end; procedure InitializeWizard(); begin RedesignWizardForm; end; |
|
Последний раз редактировалось Неадекватный, 12-06-2012 в 06:30. Отправлено: 06:16, 12-06-2012 | #247 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать как сделать чтоб инсталл выводил окошко . идет подготовка к установке и отображения точного прогресса . в прогресс баре или в процентах . плиз хелп .
|
Отправлено: 08:29, 12-06-2012 | #248 |
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать Mafia_forever, по моему должен по-умолчанию производится.
|
Отправлено: 08:32, 12-06-2012 | #249 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Неадекватный,
небольшой апдейт к твоему скрипту блокировка/разблокировка кнопки "далее" в зависимости от того есть ли текст во всех эдитах припиши всем эдитам OnChange := @EditsOnChange; *(или в дизайнере во вкладке события назначь) хотя не знаю являются ли твои настройки xml опициональными полный код: |
Последний раз редактировалось Johny777, 12-06-2012 в 11:00. Отправлено: 10:22, 12-06-2012 | #250 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|