[资料收集]关机,重启,注销WindowsNT的实现

作者在 2007-04-26 18:13:00 发布以下内容

'**********************************************关机,重启,注销的实现*************************************
'资料收集:轻风工作室RedIce
'**********************************************API函数声明************************************************
  Public Declare GetCurrentProcess Lib "kernel32" () As Long
  Public Declare OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
  Public Declare LookupPrivilege Lib "advapi32" Alias "LookupPrivilegeA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
  Public Declare AdjustTokenPrivileges Lib "advapi32" (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
  Public Declare ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
  Public Declare GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
'*********************************************************************************************************
'**********************************************常量声明************************************************

  Public Const EWX_LOGOFF = 0
  Public Const EWX_SHUTDOWN = 1
  Public Const EWX_REBOOT = 2
  Public Const EWX_FORCE = 4
  Public Const EWX_POWEROFF = 8
  Public Const TOKEN_ADJUST_PRIVILEGES = &H20
  Public Const TOKEN_QUERY = &H8
  Public Const SE_PRIVILEGE_ENABLED = &H2
  Public Const ANYSIZE_ARRAY = 1
  Public 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
  Type LUID
          LowPart   As Long
          HighPart   As Long
  End Type
  Type LUID_AND_ATTRIBUTES
          pLuid   As LUID
          Attributes   As Long
  End Type
  Type TOKEN_PRIVILEGES
          PrivilegeCount   As Long
          Privileges(ANYSIZE_ARRAY)   As LUID_AND_ATTRIBUTES
  End Type
  '*********************************************************************************************************

  '*******************************************自定义函数****************************************************

 
  '判断操作系统类型
  Public IsWinNT() As Boolean
          Dim myOS     As OSVERSIONINFO
          myOS.dwOSVersionInfoSize = Len(myOS)
          GetVersionEx myOS
       &

默认分类 | 阅读 1694 次
文章评论,共0条
游客请输入验证码