![]() |
RunAs
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:
// Verbesserungen gerne als Mail an mich!
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) = '0' then 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; [edit=Sharky]Delphi-Tags gesetzt. Antworten grundsätzlich hier im Forum!! Mfg, Sharky[/edit] |
Re: RunAs
Moin Juhuu,
probier mal nicht cacls direkt aufzurufen, sondern über eine Konsole (cmd.exe /c <BEFEHL>). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz