|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.08.2011, 22:00 | #11 | |
Ищите и обрящете!
Пользователь
Регистрация: 06.09.2010
Сообщений: 41
|
Цитата:
Так вот, в семёрке, если установить программу в папку Program Files, файл для данных создаётся, но настройки туда не записываются и почему-то создаётся ещё один файл путь которого следующий:”C:\Users\Vedaslav\AppDat a\Local\VirtualStore\Program Files\Рабочая папка “ и в него записывается инфа. Да и ещё C:\Users\Vedaslav\AppData\Local\Vir tualStore\Program Files\ Рабочая папка\файл.txt “ и С:\ Programm File\Рабочая папка\файл.txt ' это не одно и тоже. Т.е. файлы с одними и теми же названиями находятся в разных местах. Код выложить не могу, очень большой. Думаю проблема всё-таки в UAC. Последний раз редактировалось Vedaslav; 01.08.2011 в 22:17. |
|
01.08.2011, 22:48 | #12 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Вы опять врёте или путаете.
Простой эксперимент: 1). Создаём в Program Files папку MyApp. 2). Создаём в папке MyApp файл MyFile.txt, запшем туда строку 'Old content'. 3). Создаём приложение (или берём ваше), располагаем 3 TMemo на форме и пишем такой тестовый код: Код:
4). Запускаем прогу. И что же мы видим? C:\Program Files\MyApp\MyFile.txt действительно не изменился - в нём по-прежнему лежит строка 'Old content'. Но зато был создан файл c:\Users\User Name\AppData\Local\VirtualStore\Pro gram Files\MyApp\MyFile.txt, в котором после прогона программы и будет записано 'Another content!'. А программа? А программа этого даже не заметила! Первая загрузка загрузила в Memo1 строчку 'Old content' - что и лежало изначально в файле MyFile.txt. Затем мы записали в файл MyFile.txt строку 'New content!'. И хотя на деле запись пошла в файл c:\Users\User Name\AppData\Local\VirtualStore\Pro gram Files\MyApp\MyFile.txt, программа этого не заметила! Потому что когда она загружает в Memo2 файл C:\Program Files\MyApp\MyFile.txt, то в Memo2 оказывается строка 'New content!' - строка из файла c:\Users\User Name\AppData\Local\VirtualStore\Pro gram Files\MyApp\MyFile.txt, в то время как сам файл C:\Program Files\MyApp\MyFile.txt не был изменён и по-прежнему содержит строку 'Old content'. Аналогично проходит и вторая запись - изменяется лишь c:\Users\User Name\AppData\Local\VirtualStore\Pro gram Files\MyApp\MyFile.txt. Иными словами, при первой попытке старой программы записать что-то в системные защищённые папки (Windows, System, Program Files), система создаёт теневую копию файла и в дальнейшем подсовывает её программе. Программе кажется, что она действительно работает с файлом в Program Files, но на самом деле это другой файл, подсунутый ей. Но она этого не видит. Вот почему я и спрашиваю: в чём, чёрт побери, у вас проблема?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
01.08.2011, 22:57 | #13 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Ссылки для чтения:
http://www.gunsmoker.ru/2008/11/uac-vista.html http://www.gunsmoker.ru/2008/10/vista.html http://www.gunsmoker.ru/2011/02/dll-...-side.html#uac http://www.transl-gunsmoker.ru/2010/...tion-data.html http://www.transl-gunsmoker.ru/2010/...g-post_30.html http://www.transl-gunsmoker.ru/2009/...g-post_18.html http://www.transl-gunsmoker.ru/2010/...g-post_29.html http://www.transl-gunsmoker.ru/2010/...g-post_30.html Типичный сценарий грамотно написанного приложения: 1). Стационарная версия: - Устанавливается на машину установщиком, запущенным под администратором. - Место по умолчанию для установки - Program Files. - Не требует прав админа для работы. - В Program Files помещаются исполняемые файлы и неизменные данные (.exe, .DLL, резервный слепок БД и т.п.). - Настройки хранятся в реестре или в конфигурационном файле (ini, XML, JSON) в AppData (roaming вариант). - Изменяемые данные, не относящиеся к конфигурации, хранятся в файлах в AppData (local вариант). 2). Мобильная версия: - Не требует установки. - Запускается с места, как правило - съёмного накопителя. - Не требует прав админа для работы. - Не хранит настройки в реестре. - Не хранит настройки в AppData. - Хранит настройки в конфигурационном файле (ini, XML, JSON) в папке запуска.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
01.08.2011, 23:29 | #14 |
Пользователь
Регистрация: 25.08.2009
Сообщений: 12
|
пиши в другую папку и не парься
|
01.08.2011, 23:38 | #15 | |
Ищите и обрящете!
Пользователь
Регистрация: 06.09.2010
Сообщений: 41
|
Цитата:
Вообще если прогу установить в другой раздел жёсткого диска, то она работает нормально. Да наверное я что-то напутал в кодинге, потому что программа то записывает данные в теневую копию файла, то не записывает. Буду разбираться. Благодарю за помощь GunSmoker |
|
01.08.2011, 23:40 | #16 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
"Другой раздел" не является защищённым местом системы (по умолчанию). Там уже может быть что угодно.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
01.08.2011, 23:41 | #17 |
Ищите и обрящете!
Пользователь
Регистрация: 06.09.2010
Сообщений: 41
|
|
01.08.2011, 23:48 | #18 | |
Ищите и обрящете!
Пользователь
Регистрация: 06.09.2010
Сообщений: 41
|
Цитата:
А что делать если у пользователя только один диск, ну например "С" на котором установлена ОС. Получается, что моя прога не сможет записывать свои данные в файл, ведь этот раздел является защищённым, или нет? |
|
01.08.2011, 23:56 | #19 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Только что я экспериментом показал, что нет никакой проблемы с записью в защищённое место, не так ли?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
02.08.2011, 00:03 | #20 |
Ищите и обрящете!
Пользователь
Регистрация: 06.09.2010
Сообщений: 41
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Некорректная работа программы... | HyperZen | Общие вопросы Delphi | 2 | 03.07.2011 10:46 |
Некорректная работа WPF | _-Re@l-_ | WPF, UWP, WinRT, XAML | 0 | 19.04.2011 16:05 |
Некорректная работа с файлами | Gapro | Общие вопросы Delphi | 13 | 24.03.2011 08:39 |
Некорректная работа программы при формировании массива | @Manya@ | Общие вопросы C/C++ | 13 | 22.04.2010 21:40 |
Некорректная работа Ucoz.ru | docbrain | WordPress и другие CMS | 7 | 31.03.2010 11:26 |