Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2005
salvanano salvanano is offline
Miembro
 
Registrado: abr 2005
Posts: 92
Poder: 20
salvanano Va por buen camino
Apagar y reiniciar windos

Hola, no se si esto debe ir aqui pero soy novato. Quisiera saber cual son los comando de windows para apagar y reiniciar el ordenador. lo que quiero realizar es un form que al pulsar un boton se apague o reinicie windows.
1 saludo y gracias de antemano
Responder Con Cita
  #2  
Antiguo 07-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Qué tal una búsqueda en los Foros?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-10-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
no recuerdo si ya habia respondido esto antes.....pero bueno!!
ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #4  
Antiguo 07-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por OSKR
no recuerdo si ya habia respondido esto antes.....pero bueno!!

ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
El tema no es tan sencillo... a lo menos por mi parte, al desarrollar determinado programa (escrito en C#), que puede encontrarse en esta página Web por el nombre de "Apagador", hube de ir un poco más allá, asignando ciertos privilegios, por ejemplo, para poder al cabo llamar a la función que propones.

Ahora mismo no recuerdo más, pero, efectivamente, entre los resultados de la búsqueda llevada a cabo en estos Foros (y que enlacé más arriba) hay un Hilo en que se trata esta cuestión y este cuenta con más de dos decenas de respuestas. De ahí que le remitiera a dichos resultados y no le hablara sin más de la función que mencionas. Esto lo digo sin ánimo de molesar en absoluto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-10-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Hmmmm!!, se q no tienes animo de molestar , no he usado C# hasta el dia de hoy, esta funcion la he usado con Builder y funciona al pelo, siempre trabajo con privilegios de administrador en el lab donde estoy, no he probado con una cuenta mortal pero lo intentaré...además como salvanano solo necesitaba un comando de Guindows pa' reiniciar pues decidi escribirlo sin ahondar en el tema a menos q lo especificara


Saludos
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #6  
Antiguo 14-10-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
tal vez te sirva

Hola:
He desarrollado una Unit que realiza el Restart y el LogOff de cualquier Windows(probado hasta el XPSP1) y a mi me funciona a las mil maravillas. Aqui te mando el codigo de mi clase.. Espero te sirva y me des tus comentarios.
Siempre para ayudar...

Código Delphi [-]
 unit uShutDown;
 {
     clae que apaga cualquier sistema operativo familia Windows.
     Probado hasta el WinXPSP1.
     Autor: Lazaro Bustio Martinez
                  Estudiante Ing. Informatica, 5to anno.
                  Cujae - CUBA
                  lbustio@yahoo.es
              
              NOTA: Mucha de las cosas aqui  mostrada no hubiesen sido posible
              sin la ayuda del foro de www.clubdelphi.com.. a todos ellos
              MUCHAS GRACIASSS!!!
 
 }
 
 interface
 uses
   Windows,SysUtils, Variants, Classes;
 
 Type
   TShutDownSystem = Class(TObject)
     Public
       Procedure EnableShutDown;
       Function  IsWinNT : boolean;
       Procedure ShutDownNT(Force : Boolean);
       Procedure RebootNT(Force : Boolean);
       Procedure LogOffNT(Force : Boolean);
       Constructor Create;
       Destructor Destroy;
      end;
 
 implementation
 
 { TShutDownSystem }
 function GetCurrentProcess: THandle;stdcall;external 'kernel32.dll';
 function OpenProcessToken(ProcessHandle: THandle; DesiredAccess: DWord; 
   TokenHandle: PHandle): bool;stdcall;external 'advapi32.dll'
 
 constructor TShutDownSystem.Create;
 begin
   Inherited Create;
 end;
 
 destructor TShutDownSystem.Destroy;
 begin
   Inherited Destroy;
 end;
 
 procedure TShutDownSystem.EnableShutDown;
 var
   hProc    : THandle;
   hToken   : THandle;
   mLUID    : Int64;
   mPriv    : TOKEN_PRIVILEGES;
   mNewPriv : TOKEN_PRIVILEGES;
   mVar     : DWord;
 begin
   hProc := GetCurrentProcess;
   OpenProcessToken(hProc,TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY,@hToken);
   LookupPrivilegeValue(PChar(''),PChar('SeShutDownPrivilege'),mLUID);
   mPriv.PrivilegeCount := 1;
   mPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
   mPRiv.Privileges[0].LUID := mLUID;
   mVar := 4 + (12 * mNewPriv.PrivilegeCount);
   AdjustTokenPrivileges(hToken,false, mPriv,4+12 * mPriv.PrivilegeCount,mNewPriv,mVar);  
 end;
 
 function TShutDownSystem.IsWinNT: boolean;
 var
   myOS : OSVERSIONINFO;
 begin
   myOS.dwOSVersionInfoSize := sizeOf(myOS);
   GetVersionEx(myOS);
   IsWinNT := (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT); 
 
 end;
 
 procedure TShutDownSystem.LogOffNT(Force: Boolean);
 var
   Flags : LongInt;
 begin
   Flags := EWX_LOGOFF;
   If Force then Flags :=  Flags + EWX_FORCE;
   If IsWinNT then EnableShutDown;
   ExitWindowsEx(Flags,0);
 end;
 
 procedure TShutDownSystem.RebootNT(Force: Boolean);
 var
   Flags : LongInt;
 begin
   Flags := EWX_REBOOT;
   If Force then Flags :=  Flags + EWX_FORCE;
   If IsWinNT then EnableShutDown;
   ExitWindowsEx(Flags,0);
 end;
 
 procedure TShutDownSystem.ShutDownNT(Force: Boolean);
 var
   Flags : LongInt;
 begin
   Flags := EWX_SHUTDOWN;
   If Force then Flags :=  Flags + EWX_FORCE;
   If IsWinNT then EnableShutDown;
   ExitWindowsEx(Flags,0);
 
 end;
 
 end.
__________________
Muchas Gracias...

Última edición por dec fecha: 14-10-2005 a las 17:49:49. Razón: Ajustar el ancho del texto.
Responder Con Cita
  #7  
Antiguo 14-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias bustio por el aporte. Probablemente a alguien le vendrá estupendo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 03:12:20.


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