Форум: "Начинающим";
Текущий архив: 2018.05.20;
Скачать: [xml.tar.bz2];
ВнизКак сделать чтобы написанная мной программа запускалась от имени Найти похожие ветки
← →
Anthony68 (2016-05-01 19:31) [0]Моя программа, написанная на Delphi XE7 не может работать, если пользователь установил её в С:\,
a на диске D:\ - работает нормально... Я понял, что это получается из-за того, что Windows не даёт ей
права на запись необходимых ей файлов.
Если же запустить от имени администратора - всё начинает работать... Как быть? Можно ли сделать чтобы
программа сразу запускалась от имени администратора, без того, чтобы сам пользователь открывал её
свойства и ставил галочку напротив "Запускать от имени администратора"?
Нашёл на форуме код, который делает это, но ему нужно передать имя и пароль администратора. Но ведь
я же не знаю, какой пароль у пользователя... И вообще, не понимаю, зачем их вводить, если пользователь
и так уже работает как администратор... Объясните пожалуйста, как решать такую задачу?
← →
sniknik © (2016-05-02 00:51) [1]по хорошему прога не должна писать туда куда ей запрещено, но если очень надо... то именно на этот момент, с запросом логина-пароля если потребуется (при "элевации" не нужно), и тут же назад в "безопасный режим"
http://delphimaster.net/view/4-1357723591/
тока фильтруй, там глупостей просто кучу насоветовали.
← →
Игорь Шевченко © (2016-05-02 08:57) [2]Надо переписать программу с учетом требований Windows
← →
Inovet © (2016-05-02 16:14) [3]> [0] Anthony68 (01.05.16 19:31)
> Можно ли сделать чтобы
> программа сразу запускалась от имени администратора
Делать так не надо - лто плохо. Надо настройки хранить в правильном месте.
← →
Anthony68 (2016-05-02 18:06) [4]А что значит "хранить настройки в правильном месте"?? А если программа устроена так, что она не только настройки, а много всего по мере работы в разные свои файлы должна записать, а прав не имеет? Как из программы запросить у системы эти права?
← →
Anthony68 (2016-05-02 18:26) [5]Прочёл совет скачать Resource Builder, и отредактировать файл ресурсов ".res" моей программы, заменив в манифесте level="asInvoker" на level="requireAdministrator".
Я сделал точно по этому рецепту, включая и то дополнение, что сам Delphi запустил для компиляции от имени администратора.
Почему это не работает?...
← →
Dimka Maslov © (2016-05-02 18:39) [6]
> много всего по мере работы в разные свои файлы должна записать
Для разных своих файлов существует специальное место, куда писать не возбраняется. Искать надо по ключевым словам CSIDL_COMMON_APPDATA и SHGetSpecialFolderPath. Все свои рабочие файлы приложения должны хранить в этой папке.
← →
Anthony68 (2016-05-02 19:56) [7]Может и должны, а может и нет? Мне интересно, а почему программа должна соблюдать
эти условные правила Windows?
Мне не хочется распихивать файла по папкам с такими непонятными названиями, и поэтому сделал, чтобы моя программа хранила все свои рабочие файлы у себя же в папке.
Разве это запрещается? Поясните пожалуйста.
Кстати, замена level="asInvoker" на level="requireAdministrator" заработала!!
Видно я просто что-то неправильно делал при сохранении моего файла в Resource Builder.
Теперь всё работает и в Program Files. Даже не верится что так всё просто оказалось...
Теперь вот не понимаю, почему на подобные моему вопросы на форумах такие сложные
решения этой задачи??...
← →
Inovet © (2016-05-02 21:22) [8]> [7] Anthony68 (02.05.16 19:56)
> Может и должны, а может и нет? Мне интересно, а почему программа
> должна соблюдать
> эти условные правила Windows?
Не хочешь - не соблюдай. Но зачем тогда спрашивать советы.
← →
Inovet © (2016-05-02 21:25) [9]Вкратце. Это задумано в целях безопсности. Не надо давать доступ на запись в папки, где размещаются исполняемые файлы, чтобы их кто-нибудь случайно или преднамеренно не изменил.
← →
Германн © (2016-05-03 00:56) [10]
> Anthony68 (02.05.16 19:56) [7]
>
> Может и должны, а может и нет? Мне интересно, а почему программа
> должна соблюдать
> эти условные правила Windows?
Если она их не будет соблюдать, то все её пользователи сочтут, что её место в корзине.
← →
Dimka Maslov © (2016-05-03 09:01) [11]
> то все её пользователи сочтут, что её место в корзине.
И правильно сделают. Любая программа, которая, даже будучи в песочнице, вдруг запросит права администратора - сносится немедленно и навсегда.
← →
Плохиш © (2016-05-03 10:04) [12]
> Anthony68 (02.05.16 19:56) [7]
>
> Может и должны, а может и нет? Мне интересно, а почему программа
> должна соблюдать
> эти условные правила Windows?
Потому что она работает под управлением Windows.
← →
NoUser © (2016-05-03 17:37) [13]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.05.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c