program Project1;
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
ShellAPI;
{$R *.res}
procedure RunAsAdmin(const ProgramName: String; const Parameters: String = ''; Handle : HWND = 0);
var
Info : TShellExecuteInfo;
begin
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(Info);
Info.Wnd := Handle;
Info.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
Info.lpVerb := 'runas';
Info.lpFile := PChar(ProgramName);
Info.lpParameters := PChar(Parameters);
Info.nShow := SW_SHOWNORMAL;
if not ShellExecuteEx(@Info) then
RaiseLastOSError;
end;
begin
RunAsAdmin('XProgram.exe');
end.