(Gast)
n/a Beiträge
|
Re: Rückgabewert von CreateProcessWithLogonW und GetLastErro
24. Jan 2005, 16:15
Zitat von Luckie:
Es funktioniert, wenn GetLastWrror direkt in der Routine ausgewertet wird, nicht aber wenn ich GetLastError zurückgeben lasse.
Also bei mir geht das, auch wenn ich GetLastError() zurückgebe:
Delphi-Quellcode:
function CreateProcessAsLogon(const User, PW, Application, CmdLine: WideString):
LongWord;
var
si : TStartupInfoW;
pif : TProcessInformation;
begin
ZeroMemory(@si, sizeof(si));
si.cb := sizeof(si);
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := 1;
SetLastError(0);
CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW),
LOGON_WITH_PROFILE, nil, PWideChar(Application+' "'+CmdLine+'"'),
CREATE_DEFAULT_ERROR_MODE, nil, nil, @si, @pif);
Result := GetLastError;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lasterror: LongWord;
begin
lasterror := CreateProcessAsLogon(Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text);
if LastError <> 0 then
MessageBox(Application.Handle, PChar(SysErrorMessage(LastError)), '', MB_ICONSTOP);
end;
|
|
Zitat
|