
En esta misma sección podeis encontrar cómo reiniciar el equipo, apagarlo o cerrar la sesión mediante el uso de ExitWindowsEx (válido para cualquier versión de Windows 32 bits) en el artículo "Reiniciar el ordenador en W95 y NT".
Este ejemplo permite apagar tanto máquinas remotas como la propia máquina local, con la posibilidad de incluir mensajes remotos de apagado y el tiempo antes de que la máquina se apague y reinicie automáticamente.
Public Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias
"InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long
Public Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias AbortSystemShutdownA" (ByVal lpMachineName As String) As Long
Ejemplo :
'Crea un formulario con dos botones
Private Sub Command1_Click()
'Inicia el apagado de la maquina llamada MYPC con un mensaje de aviso,tardará
'30 seg en apagarse,cerraras las aplicaciones abiertas y reiniciara la maquina.
InitiateSystemShutdown "\\MYPC", "The system is Shutting Down", 30, True, True
End Sub
Private Sub Command2_Click()
'Si antes de los 30 seg, este botón es pulsado, el apagado se detendrá
AbortSystemShutdown "\\MYPC"
End Sub

