Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение конфигурации ini или не ini? 
V
    Опции темы
Frees
Дата 31.7.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



http://www.sql.ru/forum/actualthread.aspx?tid=577551

Добавлено через 49 секунд
проверять наличие файла надо под админом


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
CodeMonkey
Дата 31.7.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Akella @  31.7.2008,  11:31 Найти цитируемый пост)
Frees, не верю, покажи код сохранения

А зря ;)

Цитата(Frees @  31.7.2008,  11:22 Найти цитируемый пост)
Виста спокона даст туда сохранить ни чего не сказав, но зайдя под другим пользователем файла там не будет т.к фактически он будет хранится C:\Users\Frees\AppData\Local\VirtualStore\Program Files\Project1\

Это механизм виртуализации. Ещё одни костыли для кривых программ, чтобы они не упали при обновлении Windows: Управление учетными записями пользователей Windows Vista: взгляд изнутри (Марк Руссинович) Registry Virtualization in Windows Vista
Но о виртуализации в этом топике речь не шла.

Для определения, виртуализирован ли процесс, нужно получить его токен и вызвать GetTokenInformation с TokenVirtualizationEnabled (TOKEN_INFORMATION_CLASS Enumeration).

Это сообщение отредактировал(а) CodeMonkey - 31.7.2008, 12:12


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Frees
Дата 31.7.2008, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(CodeMonkey @  31.7.2008,  11:52 Найти цитируемый пост)
Но о виртуализации в этом топике речь не шла.

зато шла о сохранений в програм файлс


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
CodeMonkey
Дата 31.7.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Frees @  31.7.2008,  11:54 Найти цитируемый пост)
зато шла о сохранений в програм файлс


Вопрос был задан о том, как правильно делать.
А вы говорите, что пишите как хотите - виртуализация всё скроет. Отличный ответ.

Всё равно как на вопрос "в чём писать программы для Windows" ответить "в Turbo Pascal-е".


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Frees
Дата 31.7.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



Цитата(CodeMonkey @  31.7.2008,  12:34 Найти цитируемый пост)
Вопрос был задан о том, как правильно делать.А вы говорите, что пишите как хотите - виртуализация всё скроет. Отличный ответ.


я не имел в виду токого!

я просто хотел обратить внимание на проблемы которые могут возникнуть если писать в ини и ложить его рядышком


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
CodeMonkey
Дата 31.7.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Прошу прощения, что не так вас понял.

Цитата(Frees @  31.7.2008,  12:35 Найти цитируемый пост)
я не имел в виду токого!

Возможно, стоило акцентировать на этом внимание, потому что вашу фразу
Цитата(Frees @  31.7.2008,  11:22 Найти цитируемый пост)
Виста спокона даст туда сохранить ни чего не сказав

я понял именно так, как указал выше.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
yus
Дата 1.8.2008, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 1.2.2007
Где: Tomsk

Репутация: нет
Всего: нет



Цитата(CodeMonkey @ 31.7.2008,  09:24)
Цитата(yus @  31.7.2008,  05:43 Найти цитируемый пост)
А можеш подсказать где можно почитать требования к сертификации программ Microsoft'ом?

http://www.google.com/search?q=Windows+Vis...tware+Logo+Spec
http://www.google.com/search?q=Windows+XP+Software+Logo+Spec

Спасибо.
PM MAIL ICQ Jabber   Вверх
KotBegemotKlg
Дата 1.8.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.8.2008

Репутация: нет
Всего: нет



Лично моё мнение:
Если нужно эти сохранённые параметры менять, то однозначно INI файл. 
Если это просто сохранение параметров, которые никто явно менять не будет - реестр.
Если речь о базе данных, многие параметры, общие для всех, можно (и нужно) хранить прямо в базе.

Почему INI: Потому что в реестре я могу соохранить ключ-(подключ)-значение. А потом ты откроешь реестр, найдёшь ключ EnableSmartEnumeration и долго будешь чесать репу что это за параметр, и за что отвечает. А в ini я напишу:
Код

; Параметр отвечает за то-то или сё-то. Единицы измерения - минуты
AutoUnbindInterval=30

И у тебя не будет сомнений.
PM MAIL   Вверх
Poseidon
Дата 4.8.2008, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(KotBegemotKlg @  1.8.2008,  22:39 Найти цитируемый пост)
Почему INI: Потому что в реестре я могу соохранить ключ-(подключ)-значение. А потом ты откроешь реестр, найдёшь ключ EnableSmartEnumeration и долго будешь чесать репу что это за параметр, и за что отвечает. А в ini я напишу:
Ну, если уж так придираться, то можно написать толковый help, в котором будут описаны все параметры реестра и что они делают. И это будет более профессионально, чем коментарии в ini.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
CodeMonkey
Дата 5.8.2008, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Poseidon @  4.8.2008,  23:10 Найти цитируемый пост)
Ну, если уж так придираться, то

можно ещё сказать, что в реестре проще хранить многостроковые и двоичные данные. Плюс иерархия против одного уровня, плюс возможность установки прав на каждый ключ, плюс наличие встроенного специализированного редактора. Ммммм....  может ещё что забыл.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KotBegemotKlg
Дата 5.8.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 1.8.2008

Репутация: нет
Всего: нет



Цитата(Poseidon @  4.8.2008,  23:10 Найти цитируемый пост)
Ну, если уж так придираться, то можно написать толковый help, в котором будут описаны все параметры реестра и что они делают. И это будет более профессионально, чем коментарии в ini.

Достаточно сравнить механизмы:
1.
 а) Открыть help, найти информацию о ключах и о том какой ключ за что отвечает.
 б) Открыть Regedit, найти этот ключ, исправить.

2.
 а) Открыть INI почитать за что отвечает ключ, тут же исправить.

Второе явно проще. Насчёт доступа - это не вопрос реестра. Это вопрос бизнес-логики программы кому и к каким параметрам давать доступ. С реестром согласен только в плане иерархических данных (частично) и двоичных - там действительно это будет удобнее. Но опять же, выносить эти вещи в доступные настройки, имхо, ни к чему. Правке адвансед-юзером подлежат только простые параметры, которые не могут привести к краху приложения! Визуальные настройки среды (хотя это лучше и делать визуально, через окно настроек, чтобы пользователь тут же видел результат), какие-то параметры отображения данных, и так далее.

PM MAIL   Вверх
Poseidon
Дата 5.8.2008, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(KotBegemotKlg @  5.8.2008,  12:23 Найти цитируемый пост)
Достаточно сравнить механизмы:
О чем вообще речь? С каких это пор настройки программ меняются не выставлением "галок" и выбором из менюшек, а ковырянием в файлах? Вы явно чуток отстали от технологий...



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Teleport
Дата 5.8.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 3
Всего: 6



вот уже учусь сохранять параметры прямо в базе, для определнных прог. А для других сохраняю в ini файле - так как параметры и настройки в программе постоянно меняются . С реестром пока тяжеловато.  Не освоил еще никак  smile 


--------------------
user posted image
user posted image 
PM MAIL   Вверх
CodeMonkey
Дата 9.8.2008, 12:56 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Хоть мы немножко ушли в топике в сторону, но я думаю, что стоит сказать ещё пару слов про виртуализацию, а то многие даже не в курсе, что она есть (не говоря уже про то, зачем она нужна). Пост навеян топиком Как сохранить настройки в файле под Vista?
Виртуализация позволяет работать в Vista старым кривым программам, которые пытаются писать свои даные в не предназначенные для этого места (Program Files, Windows и т.п.). Она предназначена только для обеспечения совместимости.
Если такая програма под обычным пользователем пытается писать файл, например, в Program Files, то вместо этого она будет работать с файлом в папке C:\Users\<имя-пользователя>\AppData\Local\VirtualStore\Program Files. Очевидно, что для новой программы такая попытка приведёт к возврату ошибки "в доступе отказано". Кроме того, также очевидно, что такая старая программа будет работать только в Vista, в XP она не работала изначально (имеется ввиду - под обычным пользователем).
Виртуализирован ли процесс можно определить в диспетчере задач (Task Manager) - просто добавьте столбец "Виртуализация". Про программное определение я уже сказал выше.

Как Windows определяет, старая программа или новая? 
Виртуализация включается если:
  • процесс 32-разрядный.
  • процесс запущен интерактивным пользователем.
Виртуализация не включается:
  • если процесс 64-разрядный
  • для процессов администратора
  • для служб
  • для вызовов с олицетворением
  • для приложений с манифестом, в которых указан requestedExecutionLevel
Как отключить виртуализацию? Во-первых - можно создать стандартный манифест с настройками (см. например http://www.google.com/search?&q=reques...utionLevel+MSDN ). Во-вторых, используя SetTokenInformation с TokenVirtualizationEnabled можно отключить виртуализацию программно. И, наконец, можно щёлкнуть правой кнопкой по процессу в Диспетчере Задач и выключить её из контекстного меню.

Это сообщение отредактировал(а) CodeMonkey - 4.10.2008, 15:25


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
CodeMonkey
Дата 4.10.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Довольно неплохой обзор "ini-файлы VS реестр" (Реймонд Чен): Why are INI files deprecated in favor of the registry? (также рассматривается XML).

Это сообщение отредактировал(а) CodeMonkey - 4.10.2008, 15:28


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.