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) = '
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;
// Verbesserungen gerne als Mail an mich!
[edit=Sharky]Delphi-Tags gesetzt. Antworten grundsätzlich hier im Forum!! Mfg, Sharky[/edit]