Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

COMO APAGAR UN WINDOWS NT

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: COMO APAGAR UN WINDOWS NT Responder citando


Mi duda es acerca de como apagar un Windows Nt Workstation. Esto debo de hacerlo ya que como administrador de red he creado una aplicacion en builder que realiza una copia de datos.

El problema es que el trafico en la red es muy grande, por lo que habia pensado que los usuarios no apagasen el ordenador y configurar el NT, mediante 'at', para que realice la copia cuando todos se marchan del trabajo y despues apagar el ordenador automaticamente, el problema es que no se como hacerlo.

Gracias por vuestra ayuda.

Volver arriba
Mensaje    Asunto: COMO APAGAR UN WINDOWS NT Responder citando

Hola Javier:

Prueba con esto:

ExitWindowsEx(EWX_SHUTDOWN | EWX_POWEROFF, 0xFFFFFFFF);

o bien con esto:

WinExec("RUNDLL32.EXE User,ExitWindows",0);

En caso de que te de problemas, aqui tienes una nota de Microsoft que quizas te ayude:
http://support.microsoft.com/support/kb/articles/Q176/6/95.ASP

Saludos.

Volver arriba
Mensaje    Asunto: COMO APAGAR UN WINDOWS NT Responder citando

Hola de nuevo, con esto me corrijo a mi mismo. Lo de arriba solo funciona en win95/98.

A ver si te sirve asi. Siguiendo las instrucciones de la página de Microsoft que habia puesto arriba, lo he hecho así en Windows 2000 y funciona, supongo que funcionará en Windows NT también, ya me contaras:


HANDLE ProcessHandle, TokenHandle;
LUID tmpLuid;
TOKEN_PRIVILEGES tkp, tkpNew;
DWORD dwBufferNeeded;

ProcessHandle = GetCurrentProcess();

OpenProcessToken(ProcessHandle,
    TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
    &TokenHandle);

LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tmpLuid);

tkp.PrivilegeCount = 1;
tkp.Privileges->Luid = tmpLuid;
tkp.Privileges->Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(TokenHandle,
    false,
    &tkp,
    sizeof(tkpNew),
    &tkpNew,
    &dwBufferNeeded);

// Una conseguido el "permiso" ya podemos
// usar de forma normal esta función
ExitWindowsEx(EWX_POWEROFF, 0xFFFFFFFF);

###

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.