Ver Mensaje Individual
  #2  
Antiguo 05-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola
Codigo de seoane:
Código Delphi [-]
 //Función que permite apagar la computadora o desloguearse
function ShutDownWindows(Flag: word): Boolean;
  var
    TokenPriv: TTokenPrivileges;
    H: DWord;
    HToken: THandle;
  begin
    if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
      OpenProcessToken(GetCurrentProcess,
        TOKEN_ADJUST_PRIVILEGES,HToken);
      LookUpPrivilegeValue(NIL, 'SeShutdownPrivilege',
        TokenPriv.Privileges[0].Luid);
      TokenPriv.PrivilegeCount := 1;
      TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      H := 0;
      AdjustTokenPrivileges(HToken, FALSE,
       TokenPriv, 0, PTokenPrivileges(NIL)^, H);
      CloseHandle(HToken);
    end;
    Result := ExitWindowsEx(Flag, 0);
 end;
Procedimiento:
Código Delphi [-]
procedure TFMonitor.FormDestroy(Sender: TObject);
begin
  // OJO Usar o uno u otro procedimiento
 
    // con esto se cierra windows
   ShutDownWindows(EWX_POWEROFF);

    // con esto se cierra la sesion
   // ShutDownWindows(EWX_LOGOFF);

end;
Verdad, Seoane es un Maestro.
Saludos
Responder Con Cita