Thema: Delphi RunAs

Einzelnen Beitrag anzeigen

juhuu32

Registriert seit: 9. Sep 2002
15 Beiträge
 
#1

RunAs

  Alt 21. Jul 2004, 08:25
Hallo zusammen,
ich hab' den folgenden Code bei SwissDelphiCenter.ch gefunden.
Das ganze funktioniert wunderbar mit dem unteren Aufruf aber es
erscheint das Konsolenfenster und bleibt so lange aktiv bis
CACLS abgearbeitet ist. Kann ich das "aufgerufene" Programm
irgendwie unsichtbar machen?

Besten Dank

juhuu32



Delphi-Quellcode:
uses
  JwaWinBase; ( [url]http://members.chello.nl/m.vanbrakel2/[/url] )

//...

procedure TForm1.Button1Click(Sender: TObject);
var
  si: STARTUPINFOW;
  pif: PROCESS_INFORMATION;
  res: Bool;
  s: string;
begin
  //erstmal die StartUpInfoW setzen
  //set StartUpInfoW first
  si.cb := SizeOf(startupinfow);
  si.dwFlags := STARTF_USESHOWWINDOW;
  [b]si.wShowWindow := SW_HIDE; [/b]
  si.lpReserved := nil;
  si.lpDesktop := nil;
  si.lpTitle := 'Konsole';

  // dann CreateProcessWithLogonW ausführen...
  // run CreateProcessWithLogonW...
  [b]res := CreateProcessWithLogonW('USER', 'DOMAIN', 'PASSWORD', LOGON_WITH_PROFILE,
    nil, 'CACLS.EXE C:\TEST /P Benutzer:C
    , CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pif); [/b]
  if booltostr(res) = '0then
  begin
    //wenn ein Fehler auftritt, soll der Fehlercode ausgegeben werden
    //über 'net helpmsg ' in der Kommandoeingabeaufforderung
    //kann dieser entziffert werden

    //if an error occures, show the error-code
    //this code can be 'translated' with 'net helpmsg ' on command-prompt
    str(GetLastError, s);
    ShowMessage('CreateProcessWithLogonResult: ' + booltostr(res) + #10 +
      'GetLastError: ' + s);
  end;
end;
// Verbesserungen gerne als Mail an mich!

[edit=Sharky]Delphi-Tags gesetzt. Antworten grundsätzlich hier im Forum!! Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat