Hola,
Aquí tienes cómo hacerlo en 16 y 32 bits:
(esto lo tengo en un módulo BAS)
Attribute VB_Name = "ReiniciarWindows"
Option Explicit
'--------------------------------------------------
' ReIniWin (Reiniciar Windows) ( 8/Nov/95)
' (tengo una versión de Mayo'94)
'--------------------------------------------------
#If Win32 Then
'Para usar con ExitWindowsEx
Public Const EWX_LOGOFF = 0 'Termina la sesión actual
' Public Const EWX_SHUTDOWN = 1 'Finaliza Windows
' Public Const EWX_REBOOT = 2 'Reinicia el equipo
' Public Const EWX_FORCE = 4 'Fuerza a terminar una aplicació
que no responde
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags
As Long, ByVal dwReserved As Long) As Long
'ExitWindows termina la sesión actual e inicia una nueva
'(es decir reiniciar windows)
' Public Declare Function ExitWindows Lib "user32" (ByVal
dwReserved As Long, ByVal uReturnCode As Long) As Long
#Else
Public Declare Function ExitWindows Lib "user" (ByVal _
ReStartCode As Long, ByVal DosReturnCode As Integer) As Integer
#End If
Public Sub Main()
Dim msg As String
Beep
#If Win32 Then
msg = "Estás ejecutando Windows en modo 32bits," & vbCrLf &
"(seguramente Windows 95, conectado en red)," & vbCrLf & "y e"
#Else
msg = "E"
#End If
msg = msg & "ste programa reiniciará Windows."
If MsgBox(msg & vbCrLf & vbCrLf & "¿Seguro que quieres reiniciar
Windows?", 4 + 16 + 256, "¡ ATENCIÓN !") = 6 Then
'ReStart Windows
#If Win32 Then
If ExitWindowsEx(EWX_LOGOFF, 0&) Then
#Else
If ExitWindows(66, 0) Then
#End If
End If
Else
End
End If
End Sub
Espero que te sirva.
Nos vemos.
Guillermo
----
> From: "Eduardo Rubio" <apj@ctv.es>
> To: <vb-esp@ccc.uba.ar>
> Subject: (VB-ESP) Reiniciar la máquina
> Date: Tue, 26 Aug 1997 15:27:40 +0200
> Reply-to: vb-esp@ccc.uba.ar
> Agradecería si alguien me pudiese informar sobre
> la llamadas a la API para reiniciar el ordenador, tanto en
> 16 como 32 bits
>
> Gracias
>
Si lo que quieres hacer es apagar el portátil desde VB (supongo que se
trata de eso, porque por algo debes estar preguntándolo en esta
lista), lo que tienes que hacer es usar el modificador EWX_POWEROFF en
la API ExitWindowsEx. Ejemplo:
ExitWindowsEx EWX_SHUTDOWN Or EWX_POWEROFF, 0&
El valor de la constante EWX_POWEROFF no viene en el visor API de VB.
Es 8:
Const EWX_POWEROFF = 8
Esto funciona con los portátiles con sistema de apagado rápido y con
ordenadores cuyas placas tienen alimentación ATX. De todas formas,
muchos portátiles se apagarán automáticamente sin necesidad de este
modificador.