Einzelnen Beitrag anzeigen

kalmi01
(Gast)

n/a Beiträge
 
#4

Re: Abmelden - Ohne "Tricks" das zu umgehen

  Alt 24. Nov 2007, 12:16
Delphi-Quellcode:
var
  Name : string;
  i : integer;
  hToken : THandle;
  tp : TTokenPrivileges;
  h : DWord;
begin
  Name := GetEnvironmentVariable('USERNAME');
  Name := LowerCase(Trim(Name));
  i := Pos('einer', Name) // <== hier die zugelassenen User-Namen
       + Pos('nocheiner', Name)
       + Pos('viele', Name);
  if (i = 0)
  then begin
         // shutdown
         OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken);
         LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
         tp.PrivilegeCount := 1;
         tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
         h := 0;
         AdjustTokenPrivileges(hToken, False, tp, 0, PTokenPrivileges(nil)^, h);
         CloseHandle(hToken);
         ExitWindowsEx(EWX_SHUTDOWN, 0);
       end;
  Mit Zitat antworten Zitat