Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1462120264
Anthony68
2016-05-01 19:31
2018.05.20
Как сделать чтобы написанная мной программа запускалась от имени


2-1463377126
selfi
2016-05-16 08:38
2018.05.20
Не ясная работа страницы в TWebbrowser


2-1462044561
aka
2016-04-30 22:29
2018.05.20
свой object inspector


11-1267173617
QAZ
2010-02-26 11:40
2018.05.20
SortData + Tlist


2-1462472932
Дмитрий
2016-05-05 21:28
2018.05.20
Замена строк по словарю замен





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский