Resumen Reiniciar la máquina (resetar, salir de windows)   (2 mensajes )

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.




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com