Einzelnen Beitrag anzeigen

weisswurst

Registriert seit: 10. Aug 2004
11 Beiträge
 
#3

Re: Programm unter NT 4.0 als anderer User starten

  Alt 3. Sep 2004, 10:59
Habe es mit CreateProcessAsUser probiert, klappt aber nicht. Für den Aufruf braucht man den LoginHandle. Habe ich also erzeugt aber irgendwas scheint schon damit nicht zu klappen. Ich bekomme immer 1341560 zurück. Laut Hilfe ist alles außer 0 ein gültiger Handle, was komisch ist, weil ich die Zahl auch bekomme, wenn ich falsche Anmeldeinfos angebe.

Hier mein Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   LogonHandle: THandle;
   StartupInfo : TStartupinfo;
   ProcessInfo : TProcessInformation;
begin

       LogonUser(pchar(Edit1.Text), pchar(Edit2.Text), pchar(Edit3.Text),0,LOGON32_LOGON_INTERACTIVE,LogonHandle);
       if LogonHandle = 0 then begin
          ShowMessage(IntToStr(GetLastError) + ' Fehler beim LogonHandle!');
       end else
          ShowMessage(IntToStr(LogonHandle) + ' ist der LogonHandle!');

       FillChar(Startupinfo, SizeOf(TStartupinfo),0);
       Startupinfo.cb:=Sizeof(TStartupInfo);


       CreateProcessAsUser(LogonHandle,
                           Nil,
                           pchar(Edit4.Text),
                           Nil,
                           Nil,
                           TRUE,
                           CREATE_DEFAULT_ERROR_MODE,
                           Nil,
                           Nil, // noch anpassen soll ja Env vom User verwendet werden
                           Startupinfo,
                           ProcessInfo );
end;
Hat jemand ein funktionierendes Beispiel für CreateProcessAsUser? Es gibt hier im Forum zwar viele Hiweise wie "Benutze halt CreateProcessAsUser" aber leider kein Beispiel.

Danke
  Mit Zitat antworten Zitat