VB 关闭计算机 代码

 需要提升进程权限的模块
Attribute VB_Name  =   " Exit_Windows "
Option   Explicit
Option  Base  0
'Powered by barenx
Private   Declare   Function ExitWindowsEx Lib "user32" (ByVal uFlags As LongByVal dwReserved As LongAs Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private Const VER_PLATFORM_WIN32_NT = 2
Private Type OSVERSIONINFO
    dwOSVersionInfoSize 
As Long
    dwMajorVersion 
As Long
    dwMinorVersion 
As Long
    dwBuildNumber 
As Long
    dwPlatformId 
As Long
    szCSDVersion 
As String * 128
End Type

'Detect if the program is running under Windows NT
Private Function IsWinNT() As Boolean
    
Dim myOS As OSVERSIONINFO
    myOS.dwOSVersionInfoSize 
= Len(myOS)
    GetVersionEx myOS
    IsWinNT 
= (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT)
End Function

' Shut Down NT
Public Sub ShutDownNT(Force As Boolean)
    
Dim Ret As Long
    
Dim Flags As Long
    Flags 
= EWX_SHUTDOWN
    
If Force Then Flags = Flags + EWX_FORCE
    
If IsWinNT Then Call EnablePrivileges(GetCurrentProcess(), SE_SHUTDOWN_NAME)
    ExitWindowsEx Flags, 
0
End Sub

'Restart NT
Public Sub RebootNT(Force As Boolean)
    
Dim Ret As Long
    
Dim Flags As Long
    Flags 
= EWX_REBOOT
    
If Force Then Flags = Flags + EWX_FORCE
    
If IsWinNT Then Call EnablePrivileges(GetCurrentProcess(), SE_SHUTDOWN_NAME)
    ExitWindowsEx Flags, 
0
End Sub

'Log off the current user
Public Sub LogOffNT(Force As Boolean)
    
Dim Ret As Long
    
Dim Flags As Long
    Flags 
= EWX_LOGOFF
    
If Force Then Flags = Flags + EWX_FORCE
    ExitWindowsEx Flags, 
0
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值