- 分享
- 0
- 人气
- 7
- 主题
- 13
- 帖子
- 1837
- UID
- 76124
- 积分
- 2113
- 阅读权限
- 20
- 注册时间
- 2007-5-6
- 最后登录
- 2018-4-22
- 在线时间
- 1487 小时
|
vb6
- Private Const EWX_LOGOFF = 0
- Private Const EWX_SHUTDOWN = 1
- Private Const EWX_REBOOT = 2
- Private Const EWX_FORCE = 4
- Private Const TOKEN_ADJUST_PRIVILEGES = &H20
- Private Const TOKEN_QUERY = &H8
- Private Const SE_PRIVILEGE_ENABLED = &H2
- Private Const ANYSIZE_ARRAY = 1
- Private Const VER_PLATFORM_WIN32_NT = 2
- Type OSVERSIONINFO
- dwOSVersionInfoSize As Long
- dwMajorVersion As Long
- dwMinorVersion As Long
- dwBuildNumber As Long
- dwPlatformId As Long
- szCSDVersion As String * 128
- End Type
- Public Type LUID
- LowPart As Long
- HighPart As Long
- End Type
- Public Type LUID_AND_ATTRIBUTES
- pLuid As LUID
- Attributes As Long
- End Type
- Public Type TOKEN_PRIVILEGES
- PrivilegeCount As Long
- Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
- End Type
- Private Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long
- Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal
- ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
- Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
- Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As
- TOKEN_PRIVILEGES, ReturnLength As Long) As Long Private Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
- Private Declare Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
- Private Sub EnableShutDown()
- Dim hProc As Long
- Dim hToken As Long
- Dim mLUID As LUID
- Dim mPriv As TOKEN_PRIVILEGES
- Dim mNewPriv As TOKEN_PRIVILEGES
- hProc = GetCurrentProcess()
- OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken
- LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID
- mPriv.PrivilegeCount = 1
- mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
- mPriv.Privileges(0).pLuid = mLUID
- AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 *
- mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)
- End Sub
- Public Sub ShutDownNT(Force As Boolean)
- Dim Ret As Long
- Dim flags As Long
- flags = EWX_SHUTDOWN
- If Force Then flags = flags + EWX_FORCE
- EnableShutDown
- ExitWindowsEx flags, 0
- End Sub
- Public Sub RebootNT(Force As Boolean)
- Dim Ret As Long
- Dim flags As Long
- flags = EWX_REBOOT
- If Force Then flags = flags + EWX_FORCE
- EnableShutDown
- ExitWindowsEx flags, 0
- End Sub
- 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
复制代码
vb.net
要引进
在referance 里
imports System.Diagnostics
- System.Diagnostics.Process.Start("Shutdown", "/s")
复制代码 |
|