Einzelnen Beitrag anzeigen

Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

Anwendung mit Systemrechten starten oder diese Erlangen?

  Alt 9. Apr 2008, 15:53
Hallo allerseits!

Ich möchte meine Anwendung mit gern mit Systemrechten starten, oder diese Erlangen, undzwar ohne einen Dienst. Im Forum hab ich diesen Code gefunden.

Delphi-Quellcode:
function EnablePrivilege(const Privilege: string; fEnable: Boolean; out PreviousState: Boolean): DWORD;
var
  Token : THandle;
  NewState : TTokenPrivileges;
  Luid : TLargeInteger;
  PrevState : TTokenPrivileges;
  Return : DWORD;
begin
  SetLastError(0); // Clear last system error state
  PreviousState := True;
  if (GetVersion() > $80000000) then // Win9x
    Result := ERROR_SUCCESS
  else // WinNT
  begin
    if OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then
    begin
      try
        if LookupPrivilegeValue(nil, PChar(Privilege), Luid) then
        begin
          NewState.PrivilegeCount := 1;
          NewState.Privileges[0].Luid := Luid;
          if fEnable then
            NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
          else
            NewState.Privileges[0].Attributes := 0;
          if AdjustTokenPrivileges(Token, False, NewState, SizeOf(TTokenPrivileges), PrevState, Return) then
          begin
            PreviousState := (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0);
          end;
        end;
      finally
        CloseHandle(Token);
      end;
    end;
    Result := GetLastError;
  end;
end;
Nun hab ich da mal ein paar Überlegungen und Fragen zu, berichtigt mich bitte wenn ich falsch liege.

1. Da mein Programm eh immer mit Adminrechten gestartet wird, besitzt mein Programm auch die Rechte seine Privilegien zu ändern?

und..

2. Hatt jemand soetwas wie eine Parameterliste für diese Funktion? Ich meine was muss ich in der String Const "Privilege" an diese Funktion übergeben?

z.B. für...

Systemrechte -> ?
Adminrechte -> ?
Benutzterrechte ->?

usw.

Vielleicht kann der Dezipaitor da helfen?

mfG Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat