Einzelnen Beitrag anzeigen

Peter1999

Registriert seit: 13. Dez 2007
Ort: Dresden
88 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Adminprozess starten und auf dessen Ende warten

  Alt 8. Aug 2012, 13:14
@Reli: Das funktioniert bei mir nicht ganz aber fast. So gehts aber:

Delphi-Quellcode:
procedure RunAsAdminAndWait(hWnd: HWND; aFile: string; aParameters: string);
var
  sei: TShellExecuteInfo;
begin
  FillChar(sei, SizeOf(sei), 0);
  sei.cbSize := sizeof(sei);
  sei.Wnd := hWnd;
  sei.fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_NO_UI;
  sei.lpVerb := 'runas'; // nur unter Vista / Win7 ... XP versteht runas als runasuser
  sei.lpFile := PChar(aFile);
  sei.lpParameters := PChar(aParameters);
  sei.nShow := SW_SHOWNORMAL;
  if ShellExecuteEx(@sei) then
  begin
    WaitForSingleObject(sei.hProcess, INFINITE);
    CloseHandle(sei.hProcess);
  end else
    RaiseLastOSError;

end;
Aufpassen muss man ja leider mit der Änderung des Verbs runas zwischen WinXP und Win7.

Viele Grüße...
  Mit Zitat antworten Zitat