Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Programm mit Adminrechten starten mal anders???

  Alt 19. Feb 2007, 12:31
Hi,

ist der unten beschriebene Code möglich. Besonders interessant, wäre zu wissen ob der ELSE Bereich möglich ist. Und besonders wie?

Delphi-Quellcode:
program Project1;

uses
  Windows,
  SysUtils,
  Forms,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

var
  AdminToken : Cardinal;
  ComputerName : string;

begin
 ComputerName := UpperCase(GetEnvironmentVariable('COMPUTERNAME'));
 if LogonUser(PAnsiChar(UserName), //UserName
             PAnsiChar(ComputerName), // Domäne oder lokaler Rechner
             PAnsiChar(Password), // Password
             LOGON32_LOGON_BATCH or LOGON32_LOGON_NETWORK or
             LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,
             AdminToken)
 then
 begin
   if ImpersonateLoggedOnUser(AdminToken)then
   begin
     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
     Application.Run;
   end
   else
   begin
     ...
     <Code, damit das Programm mit Adminrechten initialisiert die Formen erstellt und gestartet wird>
     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
     Application.Run;
     RevertToSelf; // zurückschalten zum angemeldeten Benutzer
   end;
end.
Code im ELSE Bereich: Gibt es irgendeinen Code, der das Programm initialisiert, die Formen erstellt und letztendlich das Program startet mit den lokalen Adminrechten, die mir bekannt sind?

Wäre für einen Ansatz dankbar. Habe schon fast das ganze Forum durch. Würde die Lösung mit einem 2. Programm, welches das Hauptprogramm mit Adminrechten aufruft vermeiden und alles schön in einem Programm haben.

Gruß, Sven
  Mit Zitat antworten Zitat