|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.10.2013, 10:16 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
UAC, автозагрузка и ПО
Доброго времени суток!
Есть программа, которой требуется запуск с правами администратора. Через манифест, оно их и так просит. Если поставить ПО в автозагрузку, то ПО не запускается. Сталкивался кто-либо с этим? ПО ставлю в текущий профиль юзера. Последний раз редактировалось Человек_Борща; 11.10.2013 в 10:19. |
11.10.2013, 10:42 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Напрямую, насколько мне известно - никак.
Сделайте ваше приложение службой (service) а в автозагрузку ставьте клиент, который будет слать заявки этой службе. Либо запускайте ваше приложение как обычное а после запуска оно само перезапускается с требованием привилегий. Конечно, будет досадно, ибо при каждом логине будет вылезать UAC. Ну и третий вариант - сделайте ваше приложение обычным а привилегии требуйте только когда понадобится. |
11.10.2013, 11:05 | #3 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
|
|
11.10.2013, 11:22 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Запускать вторую копию процесса с требованием привилегий.
ShellExecute или ShellExecuteEx с командой runas. Либо можно сделать два ЕХЕ файла с разными манифестами. Ну а передачу параметров делайте как вам удобно... |
11.10.2013, 13:43 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
waleri, нет-нет, можно как-то дляпотока в момент X, на время Y получить привелегии, а затем вернуть их.
|
11.10.2013, 14:12 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Нет.
Для этого нужно получить access token с нужными правами а его негде взять. В теории LogonUser() дает primary token но под UAC он тоже ограничен. Кроме того, для этого надо знать пароль администратора, что не есть гут. А для чего нужны привилегии? Может это можно решить другим способом - назначением прав доступа например. |
11.10.2013, 15:16 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
сейчас порою инфу по этому. ---------------------------------------------------- порыл, на данный момент вижу лишь все варианты с отдельным файлом(exe или COM-dll) http://mda-delphi.blogspot.ru/2009/0...-delphi-3.html http://msdn.microsoft.com/en-us/library/bb756922.aspx Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 11.10.2013 в 15:25. |
|
11.10.2013, 15:44 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Да, можно, через out of proc COM объект, который зарегистрирован как сервис.
Иными словами, нужно будет либо второй ЕХЕ файл, либо как минимум вторая копия процесса (которая запустится как сервис). |
27.10.2013, 03:22 | #9 |
Форумчанин
Регистрация: 24.02.2010
Сообщений: 148
|
выход есть
Вижу 2 возможных варианта:
1) Сбросить UAC 2) инжек либы в процес с правами админа и работать там ! |
27.10.2013, 11:51 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
CreateProcess и UAC | XeruH | Общие вопросы Delphi | 0 | 02.04.2013 22:16 |
uac manifest | fucil | Общие вопросы Delphi | 3 | 10.05.2012 02:02 |
Автозагрузка, каталог "Автозагрузка" создается повторно (Win7 x32) | MyIE | Общие вопросы Delphi | 10 | 29.03.2012 07:49 |
Delphi vs UAC | dyonysos | Общие вопросы Delphi | 0 | 02.05.2010 20:02 |