-
Я так скажу, не заморачиваясь заморочками Windows.
FreeBSD хранит настройки программ и левых сервисов в каталоге /usr/local/etc/. Пользовательские настройки обычно хранятся в домашнем каталоге пользователя (~/ в Unix, аналог %USERPROFILE%\ в Windows) в dot-формате — точка перед именем файла или каталога — они оказываются скрыты от глаз и не замусоривают восприятие домашнего каталога.
Каталог %APPDATA% Windows не имеет аналогов в Unix, так как находится в подкаталоге профиля пользователя, в котором пользователь может делать что захочет. То есть структура нерегламентирована.
-
> Добежал (18.12.08 18:46) [16]
> По каким признакам Vista определяет это? На одной из прог > она это выдает, на другой нет...
Манифест в ресурсах программы должен быть особенный.
Для инсталляторов она еще по другим признакам определяет.
-
> P.S.S. Товарищи, кто что скажут по сабжу, какие мысли?
а что еще надо то? Хранить в CSIDL_COMMON_APPDATA и всего делов.
-
DVM © (18.12.08 21:10) [21] Манифест в ресурсах программы должен быть особенный
можно поподробнее?
Никаким манифестом я не заморачивался, но на одной из прог почему-то Vista выдает это окошко. Хотя это обычная дельфовая прога, никаких ухищрений я не делал.
-
> Никаким манифестом я не заморачивался, но на одной из прог > почему-то Vista выдает это окошко.
Я точно не знаю, но вызов некоторых функций WinAPI тоже приводит к выдаче таких сообщений. Вроде список видел на MSDN даже.
> можно поподробнее?
<trustInfo xmlns=”urn:schemas-microsoft-com:asm.v3″> <security> <requestedPrivileges> <requestedExecutionLevel level=”requireAdministrator” uiAccess=”false”/> </requestedPrivileges> </security> </trustInfo>
Можно просто положить рядом с файлом имя_файла_программы.exe.manifest
-
> Можно просто положить рядом с файлом имя_файла_программы. > exe.manifest
Хотя нет, надо обязательно в ресурс.
-
-
> вчера он в w2k - C:\Documents and Settings\All Users, сегодня > в висте - C:\Users\All Users, а завтра МС его еще куда-нибудь > забубенит
ты меня обманул ;(((( Не All Users, а All Users\Application Data Принципиальная разница, по-умолчанию в папке Application Data в Vista запрещен обзор... Грубо говоря, когда пользователь щелкнет по ней два раза - получит "доступ запрещен". И что делать? Я писал в первом посте: > пользователи часто присылают нам файл настроек, описывают > ситуацию, мы настраиваем под них и отсылаем файл настроек > обратно
и что делать? Vista жжот блин ;( С одной стороны в папке с программой настройки не сохранишь - с включенным UAC в vista программа доступ не получит к настройкам. В рекомендуемой папке Application Data тоже хреново, в этом случае как объяснить пользователю действия, чтобы прислать нам файл настроек?!?! Не вижу пока варианта, кроме как ставить программу не в Program Files... бред какой-то...
-
Хранить где положено, пользователю дать кнопочку "Выслать файл настроек"
-
да, тоже сейчас склоняюсь к этому варианту. Тем более, сервер управляется через WEB, сделать ссылочку "экспорт файла настроек", который приведет к запросу о загрузке файла. И "импорт" там же...
-
> пользователи часто присылают нам файл настроек, описывают > ситуацию, мы настраиваем под них и отсылаем файл настроек > обратно
импорт/экспорт файла настроек? не заморачиваясь где на самом деле он находится в конкретной ОС
-
> Добежал (19.12.08 13:32) [27]
> Не вижу пока варианта, кроме как ставить программу не в > Program Files... бред какой-то...
А все потому, что неверно продумано приложение. Не следует делать по, которое одновременно может запускаться как сервис и как обычное приложение. Либо так либо сяк. Проблемы бы не было. Если же хотите поддерживать совместимость с Win9x то просто не давайте программе запускаться не как сервис под WinNT. А под Win9x она пусть хранит свои настройки где хочет, хоть в папке с программой, под WinNT - там где положено.
-
> [0] Добежал (18.12.08 17:17)
а вы пробовали запускать ваше приложение в XP, но не с правами админа, как успехи?
по-моему самый простой и надежный вариант - хранить настройки там же, но, как тут уже писали, добавить манифест, который будет при запуске запрашивать права админа + сделать проверку прав при запусе внутри программы - если пользователь не админ, то показывать предупреждение и закрывать программу.
-
> Не следует делать по, которое одновременно может запускаться > как сервис и как обычное приложение
по-моему, данная рекомендация - бред.
Программе по смыслу работы права администратора не нужны. Требовать права администратора только для того, чтобы уметь хранить настройки в каталоге с программой - как-то не феншуйно.
> а вы пробовали запускать ваше приложение в XP, но не с правами > админа, как успехи?
нормально успехи. Под продвинутым пользователем можно, ему разрешена запись в Program Files.
> добавить манифест, который будет при запуске запрашивать > права админа + сделать проверку прав при запусе внутри программы >
ну да, такое решение я уже выше обсуждал... Ну неплохо, конечно, окромя одного - программе по сути админские права не нужны. Это все равно что IE бы для работы просил права админа. Нелогично как-то было бы.
-
> [33] Добежал (19.12.08 15:13)
> ну да, такое решение я уже выше обсуждал... Ну неплохо, > конечно, окромя одного - программе по сути админские права > не нужны. Это все равно что IE бы для работы просил права > админа. Нелогично как-то было бы.
тогда и спорить не о чем. настройки должны храниться в CSIDL_COMMON_APPDATA (или же в аналоге для каждого пользователя отдельно), в win9x можно хранить либо в папке с программой, либо в "Мои документы".
-
народ, а почему многие игры хранят свой файлы именно в "Мои документы", а не в Application Data?
-
> Добежал (19.12.08 15:13) [33]
> по-моему, данная рекомендация - бред.
Ты не понял. Я хотел сказать, что если уж приложение может запускаться и как сервис и как обычное приложение, то пусть оно запускается как сервис в WinNT (и только так!) и как обычная программа в Win9x. Логично ведь?
-
> Добежал (19.12.08 15:30) [35]
> народ, а почему многие игры хранят свой файлы именно в "Мои > документы", а не в Application Data?
Потому что многие геймеры очень хотят таскать сои настройки с компа на комп, а заморачивать себе голову всякими Application Data не хотят.
-
> Добежал (19.12.2008 13:32:27) [27]
Я уже несколько раз сказал, не надо пользователю знать о каких либо файлах, а ты этого понять не можешь.
-
> Eraser (19.12.2008 14:50:32) [32]
Манифест обязателен, иначе нарвется еще и на виртуализацию.
|