VB关闭计算机代码计算机等级考试

文章作者 100test 发表时间 2010:01:01 10:53:19
来源 100Test.Com百考试题网


  需要提升进程权限的模块
  Attribute VB_Name = "Exit_Windows"
  Option Explicit
  Option Base 0
  Private Declare Function ExitWindowsEx()Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
  Private Declare Function GetVersionEx()Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
  Private Declare Function GetCurrentProcess()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()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()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()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()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模拟试题及答案解析


  Public Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"
  Private Const SE_DACL_DEFAULTED =

相关文章


VB进程权限提升代码计算机等级考试
VB获取所有逻辑磁盘信息代码计算机等级考试
VB高效连接字符串代码计算机等级考试
VB创建可等待进程并获取Stdout输出的代码计算机等级考试
VB关闭计算机代码计算机等级考试
VB内存分配与流读写代码计算机等级考试
VB实现的FileStream代码计算机等级考试
VB使用未注册的ActiveX代码计算机等级考试
如何用VB存取SQLServer中的图像数据计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛