• Viernes 19 de Abril de 2024, 16:44

Autor Tema:  Re: apagar windows con c++ builder 5  (Leído 1513 veces)

carlos_lue

  • Miembro activo
  • **
  • Mensajes: 83
    • Ver Perfil
Re: apagar windows con c++ builder 5
« en: Jueves 18 de Septiembre de 2003, 03:48 »
0
hola
me podrian decir como se puede apagar el windows desde una aplicacion en c++ builder 5.

¿Cual seria el codigo?

si me pueden ayudar gracias..

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
apagar windows con c++ builder 5
« Respuesta #1 en: Jueves 18 de Septiembre de 2003, 07:16 »
0
Todo depende, que windows??? 95/98/me o nt/2000/xp, ya que el primer grupo se apaga de una forma y el segundo de otra...


 
Código: Text
  1.  
  2. bool apagarWindows(void)
  3. {
  4.     OSVERSIONINFO osvi;
  5.     osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  6.     GetVersionEx( &osvi );
  7.     if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
  8.     {
  9.         //--- Si estamos en NT/2000/XP obtenemos el permiso necesario del sistema
  10.  
  11.         HANDLE hToken;
  12.         TOKEN_PRIVILEGES tkp;
  13.  
  14.         if (!OpenProcessToken(GetCurrentProcess(),
  15.                 TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
  16.             return false;
  17.  
  18.         LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
  19.  
  20.         tkp.PrivilegeCount = 1;
  21.         tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  22.  
  23.         AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
  24.  
  25.         if (GetLastError() != ERROR_SUCCESS)
  26.             return false;
  27.     }
  28.  
  29.     //--- Apagamos
  30.  
  31.     if (!ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0))
  32.         return false;
  33.  
  34.     return true;
  35. }
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  

Eso lo hace en ambos sistemas...

Saludos
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]