BreakPointMAN |
Отправлено: 28.07.2005, 19:58 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 86
|
Всем привет и доброго времени суток!
Возник у меня ряд вопросов касательно работы с реестром и ini-файлами. Если кто-нибудь подскажет, буду весьма признателен за любую помощь. А вопросы такие:
1) Что предпочтительнее использовать: ini-файлы или реестр? В каких случаях?
2) Мммм... вопрос, связанный с запуском программы под Администратором и обычными пользователями. Допустим, программа будет работать с реестром и, возможно, помимо этого, придется создавать ini-файлы в системной папке Windows. Ну, Администратору, наверное, открыты и все ветви/ключи реестра, и все файлы... А что делать, если программа будет запущена под пользователем с меньшими привилегиями? Что ему разрешено читать/модифицировать, а что запрещено? Можно ли это как-то обойти?
3) Есть ли более простой способ сохранения информации о конфигурации программы (такой, как используемые шрифты, местоположение и размеры форм и т.п.), нежели цикл по всем контролам с запросом их свойств и последующим сохранением в реестр/файл? (...скажем, при использовании ActionManager для сохранения конфигурации полос действий можно просто задать св-во FileName...)
4) ...иии... вообще, как лучше хранить информацию о настройках в самом приложении? Для каждого отдельного параметра вводить свою переменную нужного типа, и ей манипулировать? Или (если модальная форма настроек не уничтожается, а просто хайдится) проще читать/менять свойства чекбоксов и т.п.?
|
|
** Harold |
Отправлено: 28.07.2005, 22:27 |
|
Не зарегистрирован
|
п.1
Я в ини-файле храню, но мне надо, чтобы пользователь мог параметры проги изменять изредка. В ини-файле это очень наглядно — пары параметр=значение, логически сгрупированные по [секциям] со значащими именами, воспринимается неплохо. Читать/писать ини-файл легко...
все сказанное IMHO пользователя, иногда вымучивающего поделки, применяемые другими пользователями. Народу нравится... |
|
Rius |
Отправлено: 29.07.2005, 03:36 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
1.У меня в XML файле, работать очень легко, имеется наглядная иерархия группировки данных.
2.Часть реестра доступна обычному пользователю. Если это запрещено админом, то не судьба...
3.В принципе найстройки формы можно сохранить в dfm-Файл (WriteComponent), только вот как потом загружать...
А ActionManager не бегает по всем своим дочерним компонентам?
|
|
Vlad |
Отправлено: 29.07.2005, 08:11 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Работа через реестр, значительнее гибче, но
1. Если мало параметров -можно и в ini
Недостаток ini -пользователь может видеть, изменять, а отдельные тупые юзвери могут и стереть файлик, этих недостатков лишина запись в реест. По мимо всего, можно сделать при установки сразу ассоциацию вашего приложения, с каким либо файлом или еще что.
2. Запускать приложение можно и под админом и под пользователем, если разрешено запускать, прога будет все равно читать из реестра. Здесь опасения напрасны.
3. Вообщето все параметры (которые вы сохраняете) можно разбить на разделы, создать разделы в реесте и сохранять. Тем более реестр позволяет создать древовидную структуру параметров. А сохранять параметры в самом приложении — ну это просто извращение.
В каждом отдельном случае кол-во переменных для параметров индивидуально. Зачем спрашивается создавать переменную шрифт — можно и без переменной обойтись, что бы сосчитать и записать в файл конфигурации ( я не имею ввиду локальную переменную если она используется в этих операциях)
CODE | Или (если модальная форма настроек не уничтожается, а просто хайдится) проще читать/менять свойства чекбоксов и т.п.? |
И зачем её хайдить. Как правило окно настроек очень редко используется, так что лучше создал, установил параметры, и грохнул это окно.
Не достаток реестра на мой взгляд, что тяжело установить прогу с одного пользовательского компа на другой, не использую инсталятор программы. Проще говоря скопировать папку с прогой на другой комп, может не дать результат.( опять же в каждом конкретном случае по разному). С ini файлом или xml -проще, особенно если необходимые файлы приложения лежат в одной директории. |
|
AVC |
Отправлено: 29.07.2005, 08:12 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
1. ini-файлы или реестр
|
Храню в ini в каталоге приложения. Позволяет разные настройки для разных копий пронраммы.
QUOTE |
2. что делать, если программа будет запущена под пользователем с меньшими привилегиями?
|
Продумать стратегию доступа. На этом можно сыграть, например, выключая разные модули.
QUOTE |
3. Есть ли более простой способ сохранения информации о конфигурации программы (такой, как используемые шрифты, местоположение и размеры форм и т.п.), нежели цикл по всем контролам
|
Я использую понятие "стиль" и храню только описание стиля. При старте формы прохожу по всем контролам и применяю параметры стиля к каждому из них + правильно раставленные значения ParentFont и ParenColor.
QUOTE |
4. как лучше хранить информацию о настройках в самом приложении?
|
Как удобнее по логике программы для редактирования и использования.
|
|
olegenty |
Отправлено: 29.07.2005, 09:46 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Поскольку пишу в основном приложения для работы с БД, то склоняюсь к тому, что и настройки хранить прямо там — вполне нормально. Единственные 2 параметра, которые выносятся в реестр — строка соединения с БД и последний логин, под которым заходили... они сохраняются в ветке HKCU, так что с доступом туда проблем не возникает.
|
|
avc* |
Отправлено: 29.07.2005, 09:58 |
|
Не зарегистрирован
|
Параметры, характерные для машины (размеры форм, шрифты, цвета) храню как я писал.
А параметры, характерные для клиента (последние ответы, любимые функции и т.д.) храню в таблице БД. |
|
olegenty |
Отправлено: 29.07.2005, 10:05 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Тут фокус в том, что размеры форм я не храню. Равно как и шрифты... Если встанет такая задача, то ещё подумаю, где именно хранить. Но, скорее всего, всё же в БД, с привязкой к пользователю + имя компа.
|
|
avc* |
Отправлено: 29.07.2005, 10:41 |
|
Не зарегистрирован
|
Шрифты храню — есть любитель БАЛЬШИХ букв. А положения и размеры форм — самому удобно. |
|
|