Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-04-2007
Wellnic Wellnic is offline
Miembro
 
Registrado: mar 2007
Posts: 68
Poder: 18
Wellnic Va por buen camino
Apagar desde la "pantalla de bienvenida"

Hola
El otro día hice el típico programa de novato para probar los distintos modos de apagar el ordenador:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
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;
end;
...
//Mi código:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Gauge1.AddProgress(1); if Gauge1.Progress < Gauge1.MaxValue Then exit;
Case RadioGroup1.ItemIndex Of
0: ExitWindowsEx(EWX_LOGOFF Or EWX_FORCE, 0);
1: ExitWindowsEx(EWX_SHUTDOWN Or EWX_FORCE, 0);
2: ExitWindowsEx(EWX_REBOOT or EWX_FORCE, 0);
3: ExitWindowsEx(EWX_POWEROFF Or EWX_FORCE, 0);
4: SetSystemPowerState(False, True);
end;
Application.Terminate;
end;
Funciona como esperaba, excepto cuando pongo la "pantalla de bienvenida" de Windows, pulsando, por ejemplo, Win+L (observad que he puesto una cuenta atrás, de 5 segundos, para que me dé tiempo), en este caso no se apaga el PC, ni aunque se ejecute ExitWindowsEx(EWX_POWEROFF, FORCE), se limita a cerrar la cuenta. ¿Se puede solucionar esto, es decir, poder apagar, mediante código, aunque esté puesta la "pantalla de bienvenida"?
(Como cosa curiosa, hibernar sí se puede).

Última edición por Wellnic fecha: 30-04-2007 a las 20:29:17.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
"Apagar" el cursor en un TEdit gluglu Varios 1 17-11-2005 19:34:20
Mi mensaje nº 300 "Me pagan por Mirar una pantalla" tcp_ip_es Humor 1 16-07-2004 16:54:30


La franja horaria es GMT +2. Ahora son las 08:38:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi