![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Ahmund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 18.10.2011 Репутация: нет Всего: нет |
Доброе время суток, имеится програма каторая имеет текстовый ini файл в катором сохраняются все настройки програмы и текстовый файл базы где хранятся даные которые использует програма.
Проблема доступа к записи к этим двум файлам в Windows 7, выдает ошибку записи, когда выставляются на эти файлы вручную права на запись все работает норм. В ХР таких проблем нет. Как разрешить запись в файл в Windows 7? файлики должны находится вместе с програмой в папке Programfiles. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
1. Это плохая практика. Не делай так никогда. Используй профиль пользователя. О твоей проблеме уже говорили не раз. 2. Есть и я тебе докажу это. Попробуй поработать в XP под обычным пользователем, т.е. без прав админа, как ты это делаешь в Win7. |
|||
|
||||
| Ahmund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 18.10.2011 Репутация: нет Всего: нет |
Почему плохая практика? почему не делать? вот например програмы такие как Totalcomander, Nod32 их ини хранятся в их же папках в каталоге Programfiles. Можна сылочьку где такое говорилось, и есть примеры использования? искал ничего конкретного ненашол. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Нодовский процесс скорее всего с админскими правами запущен - антивирус всетаки. Ну а тотал - это уже проблемы их разработчиков. Сейчас во многих программах дают выбор при установке - портабельная версия или обычная. Портабл - все файлы кидает в свою папку, но тогда не стоит ставить программу в ПрограмФайлс (может еще начать по тихому виртуализировать, если манифета нет...). Обычная установка должна все изменяемые файлы держать в АликейшнДата (вроде). Ну это все теория - я еще не реализовывал этого. Просто добавил строчки в манифест что бы не виртуализировало и предупреждение при инсталяции. Ну и по умолчанию предлагаю корень системного диска вместо ПрограмФайлс. Ну а ссылочки. Есть инфа в блогах некоторых пользователей этого форума. Думаю, что скоро дадут. Можешь поискать в гугле по ключевым словам - uac delphi. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Так попробуй измени в Win7 какие-нибудь настройки TotalCommander'a. И увидишь что TotalCommander их не сохранил. Но у ТС есть возможность в командной строке задать месторасположения ini-файла. Только так с ним можно работать в Win7. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Ahmund,
1) Получил путь из SysUtils.GetHomePath. 2) Создал там папку MySuperApp (это делает инсталлятор или приложение при первом использовании). 3) Читаешь и сохраняешь все там, как душе угодно. Добавлено через 1 минуту и 46 секунд Ссылки: http://habrahabr.ru/qa/10056/#answer_43334 http://habrahabr.ru/blogs/development/70922/ http://forum.vingrad.ru/topic-244127.html Добавлено через 2 минуты и 51 секунду http://msdn.microsoft.com/en-us/library/ms995853.aspx |
|||
|
||||
| Ahmund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 18.10.2011 Репутация: нет Всего: нет |
superVad Спасибо за совет, сделал манифест подгрузил его, но при запуске програмы не запрашивает разришение, и при записи также выдает ошибку, в чем может быть проблема? манифестов перепробывал много разных все такаяж ситуация.
Вот манифест каторый использовал:
Еще прикрепляю архив с rc и RES Keeper89 Можно поподробней о SysUtils.GetHomePath, гуглил толком ненашол примера для использование. Присоединённый файл ( Кол-во скачиваний: 4 )
pd.rar 0,96 Kb |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Первые ссылки в гугле:
docwiki.embarcadero.com/VCL/en/SysUtils.GetHomePath docwiki.embarcadero.com/VCL/XE2/en/IOUtils.TPath.GetHomePath |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Имхо, не надо без явной необходимости повышать права приложения!
MS не просто так включил в ОС начиная с Висты User Access Control. И дальше будет только ужесточение прав. Самое нормальное место для хранения настроек программы это либо реестр (HKCU\Software\MyProgram), либо папка LocalAppData\MyProgram или CommonAppData\MyProgram. Узнать путь к последним можно с помощью SHGetSpecialFolderPath. Это сообщение отредактировал(а) northener - 7.2.2012, 12:00 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Ahmund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 18.10.2011 Репутация: нет Всего: нет |
Keeper89, Спасибо, сылки єти находил там только функция одна написаная и все, а как ее применить в проєкте непонятно.
northener необходимость есть, так как будет не только один ини файлки хранится а еще небольшая база в текстовом документе. Нехотелось бы базу выносить в папки юзера |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
А что будет в новой версии Винды? Опять придется выкручиваться, но только еще более изощренно. Почему бы сразу не пойти в ногу с мелкомягкими? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Ты упорно не слушаешь советы и читать не хочешь? Ну-ну Добавлено через 6 минут и 46 секунд northener, разве не понятно? Настоящие программисты герои всегда идут в обход |
|||
|
||||
| Ahmund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 18.10.2011 Репутация: нет Всего: нет |
Хорошо если вы говорите что лутше писать все изменяющиеся файлы в определеную деректорию юзера, спорить не буду вы профи, соглашусь свами) ну как реализовать это? чтобы и в хр и в 7 програма определяла пути де будут ее файлы при инсталяции? и как инсталятор делать чтобы он правильно инсталировал все?
Смотрел функцию SysUtils.GetHomePath, непонятно как с ней работать. Если ктота делал такое подскажите, поделитесь примером |
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Все нормальные инсталляторы имеют набор констант, которые задают все служебные(специальные) папки. Читай описание инсталлятора. По поводу как определить пути к этим папкам в программе повторю еще раз SHGetSpecialFolderPath Пример использования Пардон, пример с ошибкой. Строку
надо заменить на
Это сообщение отредактировал(а) northener - 7.2.2012, 15:00 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Ahmund, http://msdn.microsoft.com/en-us/library/bb756929.aspx
Лучше без надобности не работать с админскими правами. На крайняк не ставь прогу в ПрограмФайлс. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |