Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Rückgabewert von CreateProcessWithLogonW und GetLastErro

  Alt 24. Jan 2005, 01:05
So ein Mist. So geht es jetzt:
Delphi-Quellcode:
function CreateProcessAsLogon(const User, PW, Application, CmdLine: WideString; var LastError: DWORD):
  LongBool;
var
  si : TStartupInfoW;
  pif : TProcessInformation;
begin
  ZeroMemory(@si, sizeof(si));
  si.cb := sizeof(si);
  si.dwFlags := STARTF_USESHOWWINDOW;
  si.wShowWindow := 1;

  result := CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW),
    LOGON_WITH_PROFILE, nil, PWideChar(Application+' "'+CmdLine+'"'),
    CREATE_DEFAULT_ERROR_MODE, nil, nil, @si, @pif);

  if not result then
    MessageBox(hApp, PChar(SysErrorMessage(GetLastError)), APPNAME, MB_ICONSTOP);
end;
Auch mit Parametern. Aber das ist Mist, weil dann die aufrufende Routine die Fehlerbehandlung nicht machen kann. Und so was gefällt mir nicht. Wollte ich jetzt keine Fehlermeldung haben, müsste ich im Code rumfuschen.

Hier übrigens dein feuchter Händedruck:
Delphi-Quellcode:
{************************************************************}
{                                                            }
{                   RunAsUser - Version 1.1                  }
{                                                            }
{               Copyright (c) 2005 Michael Puff              }
{                                                            }
{  When I die I want 'Hello, world' carved on my headstone.  }
{                                                            }
{************************************************************}

{*************************************************************

  History:

    - 2005-01-24 - 1.1
      GetLastError-Bug in CreateProcessAsLogon von tommie-lie
      gefunden:
      [url]http://www.delphipraxis.net/post306577.html#306577[/url]

*************************************************************}
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat