![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
повышение привелегий с помощью UAC
uniken1 © (2012-02-28 10:33:00)Можно ли сделать часть кода, требующая админских привелегий, выполняющейся с помощью повышения привилегий UAC?
Т.е. программа запускается под пользовательскими правами, на форме есть кнопка с кодом, наприме перезапуск службы. Как сделать что бы на ней появился стандартный значек UAC, и при нажатии на нее появлялся бы диалог повышения привилегий и дальнейший код выполнялся в бы уже с повышенными привелегиями?
uniken1 (2012-02-28 13:10:00) [1]CRLF, P Спасибо.
p (2012-02-28 12:44:00) [2]
> uniken1 © (28.02.12 10:33)
uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
var
ShellExecuteInfo: TShellExecuteInfo;
begin
Hide;
ShellExecuteInfo.cbSize:= SizeOf(TShellExecuteInfo);
ShellExecuteInfo.fMask:= 0;
ShellExecuteInfo.Wnd:= 0;
ShellExecuteInfo.lpVerb:= 'runas';
ShellExecuteInfo.lpFile:= PAnsiChar(Application.ExeName);
ShellExecuteInfo.lpParameters:= nil;
ShellExecuteInfo.lpDirectory:= nil;
ShellExecuteInfo.nShow:= SW_SHOWNORMAL;
if ShellExecuteEx(@ShellExecuteInfo) then
Close;
Show;
end;
CRLF (2012-02-28 11:54:00) [3]
> Как сделать что бы на ней появился стандартный значек UAC
TButton.ElevationRequired
> при нажатии на нее появлялся бы диалог повышения привилегий
Например, ShellExecute('runas', ...), запускай эту же или вспомогательную программу