Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#36

Re: Rückgabewert von CreateProcessWithLogonW und GetLastErro

  Alt 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;
  Mit Zitat antworten Zitat