Delphi-Quellcode:
function RunAs(
const Handle: Hwnd;
const Path, Params:
string): Boolean;
var
{$ifdef UNICODE}
sei: TShellExecuteInfoW;
{$else UNICODE}
sei: TShellExecuteInfoA;
{$endif UNICODE}
begin
FillChar(sei, SizeOf(sei), 0);
sei.cbSize := SizeOf(sei);
sei.Wnd :=
Handle;
sei.fMask := SEE_MASK_FLAG_DDEWAIT
or SEE_MASK_FLAG_NO_UI;
sei.lpVerb := '
runas';
sei.nShow := SW_SHOWNORMAL;
{$ifdef UNICODE}
sei.lpFile := PWideChar(WideString(Path));
sei.lpParameters := PWideChar(WideString(Params));
Result := ShellExecuteExW(@sei);
{$else UNICODE}
sei.lpFile := PAnsiChar(AnsiString(Path));
sei.lpParameters := PAnsiChar(AnsiString(Params));
Result := ShellExecuteExA(@sei);
{$endif UNICODE}
end;
Danke himitsu, nun gibt es keine Warnungen und es macht noch das selbe, es führt ein programm im admin-modus aus.