Einzelnen Beitrag anzeigen

ToZie

Registriert seit: 17. Feb 2004
43 Beiträge
 
Delphi 10.3 Rio
 
#21

Re: Kaltlichtiodden ein und ausschalten mittels programm

  Alt 6. Mai 2008, 20:28
Klar geht das, folgender Code wird die Lampen abschalten:

Delphi-Quellcode:
function LampenAus: boolean;
var
  hToken: THandle;
  tp: TTokenPrivileges;
  h, Flag: DWord;

begin
  flag:=EWX_SHUTDOWN;
  if (Win32Platform = VER_PLATFORM_WIN32_NT) then begin
    flag:=EWX_POWEROFF;
    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);
  end;
  Flag:=Flag or EWX_Force;
  Result:=ExitWindowsEx(flag, 0);
end;
Viel mehr wird allerdings mit deinen Lampen nicht möglich sein.

Torsten
  Mit Zitat antworten Zitat