|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.01.2011, 19:52 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Ошибка Unable to write to ECustomIniException
Всем привет!
Смотрел отчёты ою ошибках, нарвался на это: Код:
Хатя программу то туда юзер поставил, а проге нужно писать свои настройки рядом с собой. Собственно выкопал функцию проверки прав администратора как пределить находится ли программа на системном диске и есть ли пользователя права админа? |
07.01.2011, 20:23 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Нус собственно вот что получилось:
Код:
Код:
|
08.01.2011, 03:51 | #3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
ОМФГ.
Не надо проверять права администратора. Программа должна хранить свои настройки в правильном месте. И это правильное место - реестр, либо файл конфигурации в папке Application Data пользователя. Если вопрос про то, что нужно делать мобильную версию, которая хранит настройки в файле рядом с собой, то логика проста: пытаемся открыть файл конфигурации для записи (или пытаемся его создать, если его вообще нет). Успешно? Используе это место. Не успешно? Копируем файл в Application Data и там его используем. А ещё лучше - выпускать две версии программы: мобильную и стационарную. Либо использовать одну версию, но как-то указывать в каком режиме ей работать. А проверка на админа ничего не даст. Я могу тупо заблокировать запись в папку группе Админов.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
08.01.2011, 11:20 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
огромное спасибо за ценный, совет. А вот допустим такая ситуация.... У меня есть много файлов рядом с программой и куда программа что-то записывает, предлогаете переместить все это в Application Data?
Последний раз редактировалось Человек_Борща; 08.01.2011 в 11:28. |
08.01.2011, 12:31 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
08.01.2011, 12:40 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Ну для моего случая желательно чтобы пользователь имел права администратора.
Значит приведённый мною код во втоором сообщении уместен. Т.к. программа оповещает пользователя, о том что нужно для работы. |
08.01.2011, 13:46 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
можешь подробнее описать задачу? Негарно это пользункам админов раздавать бесплатно
I'm learning to live...
|
|
08.01.2011, 14:06 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Проблема такая:
Код:
Но файлов программа создаёт и пишет много. И все это возле себя. Найстройки программы. ещё понятно из можно вдуплить куда-нибуть, в реестр или в appData. Но вот остальные файлы, это проблема. И их нужно хранить около себя. Сам попробовал, создал учёт-ку юзера и сохранил программу на C диске, попытался что-либо зделать, программа защвыряла ошибками. Пака ничего лучше, при запуске проверять адм. прова и сверять буквы дисков текущего каталога программы и папки windows, и если совпадает, выдавать проедупреждение с советами как избежать, и закрыть программу. Ничего лучше этго в голову пака не приходит. |
08.01.2011, 14:23 | #9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Ещё раз: не надо хранить изменяемые данные (и тем более настройки) в папке с программой.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
08.01.2011, 14:36 | #10 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Две копии под одним юзером нельзя.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка Unable to invoke Code.... | sisofcase | Общие вопросы Delphi | 16 | 14.07.2011 20:02 |
Unable to load dbexpmysql.dll | >>arty<< | Общие вопросы Delphi | 0 | 05.04.2010 17:50 |
почему может возникать ошибка access violation...: write of address при создании динамического массива | sleevman | Помощь студентам | 16 | 03.11.2009 20:49 |
Unable to locate file | Febreze | Компоненты Delphi | 1 | 13.05.2008 22:12 |
Unable to build. license is invalid or has expired | Viteef | Свободное общение | 9 | 19.07.2007 08:04 |