![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Скрипты Inno Setup. Помощь и советы [часть 6]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: |
|
Отправлено: 19:06, 28-03-2013 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Приветствую!
Подскажите, можно ли создать страницу в инсталляторе, чтобы она отображалась после распаковки приложения? Я сделал как в help, но не знаю как ее отобразить после распаковки DBPage := CreateInputQueryPage(wpReady, 'Информация для соединения с базой данных MySQL', '', 'Введите данные для соединения с сервером и нажмите далее.'); Конечная цель - это распаковать программу, на странице DBPage попросить пользователя ввести данные для подключения к MySQL, далее занести эти данные в ini файл и проверить соединение с базой MySQL по введенным данным. И второй вопрос, как можно осуществить проверку успешного соединения с базой? |
Отправлено: 13:12, 31-08-2013 | #1081 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:01, 31-08-2013 | #1082 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., спасибо, экая я невнимательная
![]() Вопрос появился. На этапе инсталляции пользователь вводит какие-то значения, которые дальше используются (с помощью Scripted Constants). Можно ли до этих значений (конкретно тех, что ввел пользователь) доступиться при деинсталляции? |
Отправлено: 17:47, 02-09-2013 | #1083 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Shkutu,
данные лучше хранить в реестре, понятное дело к ним есть доступ пока есть ключ. как "На этапе инсталляции пользователь вводит какие-то значения"? можешь показать код? тогда может смогу написать соответствующий пример Данные должны сохраняться сразу после ввода? вот небольшой пример работы с реестром на чистом WinApi http://forum.oszone.net/post-2201802.html#post2201802 если тебе его не хватит, то скажи. Попробую сделать |
Последний раз редактировалось Johny777, 03-09-2013 в 15:06. Отправлено: 14:59, 03-09-2013 | #1084 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать Johny777, ввод значений так:
[code] procedure AskInstanceName(); begin Instancepage:= CreateInputQueryPage(wpSelectComponents, ExpandConstant('{cm:InstName}'), ExpandConstant('{cm:InstFolderName}'), ExpandConstant('{cm:ChooseInstFolderName}')); Instancepage.Add(ExpandConstant('{cm:InstName}'), false); if ActiveLanguage = 'russian' then Instancepage.Values[0]:= ExpandConstant('{#InstanceNameRus}') else Instancepage.Values[0]:= ExpandConstant('{#InstanceName}'); end; function NextButtonClick(CurPageID: Integer): Boolean; var b: boolean; path:string; RunModeIdx:integer; begin if (CurPageID=Instancepage.ID) then begin if ((RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\UCS\instances\' + Instancepage.Values[0])) and (DirExists(ExpandConstant('{app}')+'\UCS\'+Instancepage.Values[0]+'\Rk7Reference'))) then begin MsgBox(ExpandConstant('{cm:InstNameErr}'), mbInformation, MB_OK); result:=false; end else begin Instancename:= Instancepage.Values[0]; path:=ExpandConstant('{app}\UCS\')+Instancename+'\Rk7Reference\'; //b:=ForceDirectories(path); RefBasePath :=path+'base'; BasePathPage.Values[0] := RefBasePath; result:=true; end; end ... end; function GetInstancename(param:string):string; begin if Instancename='' then if ActiveLanguage = 'russian' then Instancename:= ExpandConstant('{#InstanceNameRus}') else Instancename:= ExpandConstant('{#InstanceName}'); result:=Instancename; end; С реестром не получится, т к значения в него пишутся тоже с учетом того, что ввел пользователь, т е [Registry] Root: "HKLM"; Subkey: "Software\UCS\instances\{code:GetInstanceName}"; ValueType: string; ValueName: "path"; ValueData: "{app}\UCS\{code:GetInstanceName}" UPD. И еще нет ли какого-нибудь примера про то, как можно добавить форму к деинсталлятору (в InitializeUninstallProgressForm наверное)? А то у меня что-то толком не получается это сделать, а примеров на эту тему вообще не нашла ( |
Последний раз редактировалось Shkutu, 03-09-2013 в 18:38. Причина: доп. вопрос Отправлено: 15:33, 03-09-2013 | #1085 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Shkutu:
|
|
Отправлено: 19:24, 03-09-2013 | #1086 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
Цитата El Sanchez:
|
||
Отправлено: 19:42, 03-09-2013 | #1087 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Shkutu,
Цитата Shkutu:
вот накатал функции сохранения текста в файле и чтения оттуда. Они на чистом WinApi у меня нет доверия к встроенным SaveString(s)ToFile LoadString(s)FromFile но если хочешь воспользуйся ими или пиши своё собственное значение в реестр с именем инстансы только для самой себя, и читай её в деинсталяторе Цитата Shkutu:
А то я честно говоря не знаю что мне писать ![]() El Sanchez, раз уж ты здесь можешь пожалуйста проверить правильность моих функций SaveTextToFile и GetTextFromFile. Как бы я с флагами не напутал, хотя всё работает, но фиг знает |
||
Последний раз редактировалось Johny777, 03-09-2013 в 23:00. Причина: Улучшил. Теперь при записи текста длиной короче, что есть в файле нет куска пред. текста на конце нового (TRUNCATE_EXISTING) Отправлено: 20:22, 03-09-2013 | #1088 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Shkutu:
Цитата Johny777:
|
||
Отправлено: 20:54, 03-09-2013 | #1089 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать El Sanchez, да, полный список инстансов вытащить из реестра можно при желании, но вот выбрать конкретный действительно не могу.
Цитата El Sanchez:
Цитата Johny777:
Цитата Johny777:
|
|||
Отправлено: 12:36, 04-09-2013 | #1090 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|