Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2014, 18:58   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Как можно запрашивать админ. права для запуска? Пробывал с манифестом, что-то не хочет работать.

Код:
var
 SEI: TShellExecuteInfo;
 lpExitCode: DWORD;
begin
 ZeroMemory(@SEI, SizeOf(SEI));
 SEI.cbSize := SizeOf(TShellExecuteInfo);
 SEI.Wnd := Handle;
 SEI.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
 SEI.lpVerb := PChar('runas');
 SEI.lpFile := PChar(Application.ExeName);
 SEI.nShow := SW_SHOWNORMAL;
 SEI.lpParameters:= 'бла бла';
 if ShellExecuteEx(@SEI) then
   GetExitCodeProcess(SEI.hProcess, lpExitCode);
end;
нашел такой пример, но он почему то бесконечно запускает программу.

Последний раз редактировалось Stilet; 03.07.2014 в 19:46.
UKRtortik вне форума Ответить с цитированием
Старый 08.06.2014, 15:14   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Как такой вариант?
Вложения
Тип файла: zip Project.zip (6.2 Кб, 23 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 08.06.2014, 15:36   #3
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

я же написал, примеры с манифестом не работают.
UKRtortik вне форума Ответить с цитированием
Старый 08.06.2014, 17:51   #4
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
я же написал, примеры с манифестом не работают.
Все работает с манифестом если по уму, по желанию можешь скинуть проект помогу в скайпе или как удобней тебе. Пиши в ЛС если что.
HTTqp вне форума Ответить с цитированием
Старый 08.06.2014, 19:24   #5
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

на Win 8 не работает.
UKRtortik вне форума Ответить с цитированием
Старый 08.06.2014, 19:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему то бесконечно запускает программу.
А ты куда его втюхал? Уж не в стартовые события программы ли?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.06.2014, 20:44   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
на Win 8 не работает.
манифест? работает он там отлично.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.06.2014, 21:42   #8
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Сегодня пробывал пример, который прислали выше, не работает.

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты куда его втюхал? Уж не в стартовые события программы ли?
А куда нужно?

Последний раз редактировалось Stilet; 03.07.2014 в 19:45.
UKRtortik вне форума Ответить с цитированием
Старый 09.06.2014, 00:09   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну сам посуди - ты вставляешь код запуска программы в начало этой же программы.
Ничего не смущает? Программа будет запускать себя бесконечно.
И зачем тебе вообще понадобились такие права? Предоставь пользователю выбирать как запускать твою программу, а в readme или в splash окне программы напиши мол "Рекомендуется запускать с правами админа".
Не пойму че людям так охота все хакнуть? Получить права бога? Неужели играть по нынешним правилам настолько некузяво?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2014, 17:38   #10
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Код:
var
SEI: TShellExecuteInfo;
lpExitCode: DWORD;
begin
if IsUserAnAdmin then
exit
else begin
ZeroMemory(@SEI, SizeOf(SEI));
SEI.cbSize := SizeOf(TShellExecuteInfo);
SEI.Wnd := Handle;
SEI.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
SEI.lpVerb := PChar('runas');
SEI.lpFile := PChar(Application.ExeName);
SEI.nShow := SW_SHOWNORMAL;
ShellExecuteEx(@SEI);
GetExitCodeProcess(SEI.hProcess, lpExitCode);
end;
end;
Почему программа запускается 2 раза?
UKRtortik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск от имени администратора зная логин и пароль AppData Общие вопросы Delphi 35 18.10.2013 17:26
запуск процессов от имени администратора D][mon C# (си шарп) 0 14.01.2012 23:12
Запуск от имени администратора DEV C++ Илларион Общие вопросы C/C++ 2 29.08.2011 06:55
Запуск функции от имени администратора s@ngre Win Api 4 12.04.2011 16:55
Запуск приложения от имени Администратора NoName_emaNoN Общие вопросы Delphi 16 15.07.2010 01:09