Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Progamm unter anderem Benutzer ausführen und anzeigen (https://www.delphipraxis.net/131392-progamm-unter-anderem-benutzer-ausfuehren-und-anzeigen.html)

Baeuerle 24. Mär 2009 10:15


Progamm unter anderem Benutzer ausführen und anzeigen
 
Hallo zusammen,

ich habe zwei Benuter A und B. A soll ein Prozess(Anwendung) mit den Rechten unt der Umgebung von B ausführen. Zusätzlich soll, falls sich B anmeldet auf dem Desktop von B die Anwendung zu sehen sein.

Delphi-Quellcode:
CreateProcessAsUser(
            ltoken, // token des Benutzers B
            nil,    // AppName ->egal
            PAnsiChar(LProgram),// Programmpfad
            nil, //
            nil,
            false,
            CREATE_UNICODE_ENVIRONMENT or CREATE_NEW_PROCESS_GROUP or NORMAL_PRIORITY_CLASS,  //TODO: Prioritt einstellen?
            lenv,
            nil,
            si,
            pri
            )


        si.cb:=sizeof(si);
        si.lpReserved:=nil;
        si.lpDesktop:=PChar('Winsta0\Defaul');
        si.lpTitle:=nil;
        si.dwFlags:=STARTF_FORCEOFFFEEDBACK;
        si.wShowWindow :=SW_SHOWNORMAL;
        si.cbReserved2:=0;
        si.lpReserved2:=nil;
Das Problem ist, dass ich nicht weiß wie ich an den Desktop komme und damit den richtigen parameter für lpDesktop setzen kann.

thx

Dezipaitor 24. Mär 2009 12:44

Re: Progamm unter anderem Benutzer ausführen und anzeigen
 
"winsta0\Default" heißt das eigentlich.
Du kannst es aber auch einfach leer lassen: si.lpDesktop:= '';

Ich empfehle aber: ZeroMemory(@si, sizeof(si)); vor der Nutzung von si.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz