如题

解决方案 »

  1.   

    【声明】
    Private Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    【说明】
    退出windows,并用特定的选项重新启动
    【返回值】
    Long,非零表示成功,零表示失败。会设置GetLastError
    【参数表】
      uFlags ---------  Long,指定下述一个或多个标志(用OR运算符合并到一起)
      EWX_FORCE
      强迫中止没有响应的进程
      EWX_LOGOFF
      中止进程,然后注销
      EWX_SHUTDOWN
      关掉系统电源(如果可能的话,ATX电源就可以)
      EWX_REBOOT
      重新引导系统
      EWX_SHUTDOWN
      关闭系统  dwReserved -----  Long,保留,设为零
    【其它】
    这个函数调用后会立刻返回,系统关闭过程是在后台进行的。注意先中止自己的应用程序,使关闭过程更显平顺。当然,您的进程必须有足够的优先权,否则也不能执行这种操作
      

  2.   

    'reboot computer
    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Public Const EWX_FORCE = 4
    Public Const EWX_LOGOFF = 0
    Public Const EWX_REBOOT = 2
    Public Const EWX_SHUTDOWN = 1
    Public Sub ShutDown(Status As String)
        'On Error Resume Next
        Dim Ret As Long
        Select Case Status
        Case "SHUTDOWN"
            Ret = ExitWindowsEx((EWX_SHUTDOWN Or EWX_FORCE), &HFFFF)
        Case "REBOOT"
            Ret = ExitWindowsEx((EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF)
        Case "LOGOFF"
            Ret = ExitWindowsEx(EWX_FORCE Or EWX_LOGOFF, 0)
        Case "FORCE"
            Ret = ExitWindowsEx(EWX_FORCE, 0)
        End Select
    End Sub