国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

強制一個本地或遠程NT系統關閉

強制一個本地或遠程NT系統關閉

更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

在Windows NT下,你能強制本地或遠程機器定時關閉。這段代碼將告訴你怎么做。你能指定系統關閉前的等待時間(0代表立即關閉),關閉進程的優先級(決定是否允許保存未完成的工作)和機器是否要重新啟動。
  開始一個新的Project,加入一個module,然后加入一下代碼:

'判斷系統是否為NT:
Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type  
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32s = 0

'報告API錯誤:
Private Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
Private Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000
Private Const FORMAT_MESSAGE_FROM_HMODULE = &H800
Private Const FORMAT_MESSAGE_FROM_STRING = &H400
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200
Private Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF
Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long

' =====================================================================
' NT Only
Private Type LARGE_INTEGER
  LowPart As Long
  HighPart As Long
End Type

Private Type LUID
  LowPart As Long
  HighPart As Long
End Type

Private Type LUID_AND_ATTRIBUTES
  pLuid As LUID
  Attributes As Long
End Type

Private Type TOKEN_PRIVILEGES
  PrivilegeCount As Long  
  Privileges(0 To 0) As LUID_AND_ATTRIBUTES  
End Type  

Private Declare Function GetCurrentProcess Lib "kernel32" () 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 CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetTokenInformation Lib "advapi32.dll" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) 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 LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long

Private Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"
Private Const SE_PRIVILEGE_ENABLED = &H2

Private Const READ_CONTROL = &H20000
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)

Private Const TOKEN_ASSIGN_PRIMARY = &H1
Private Const TOKEN_DUPLICATE = (&H2)
Private Const TOKEN_IMPERSONATE = (&H4)
Private Const TOKEN_QUERY = (&H8)
Private Const TOKEN_QUERY_SOURCE = (&H10)
Private Const TOKEN_ADJUST_PRIVILEGES = (&H20)
Private Const TOKEN_ADJUST_GROUPS = (&H40)
Private Const TOKEN_ADJUST_DEFAULT = (&H80)
Private Const TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _
            TOKEN_ASSIGN_PRIMARY Or _
            TOKEN_DUPLICATE Or _
            TOKEN_IMPERSONATE Or _
            TOKEN_QUERY Or _
            TOKEN_QUERY_SOURCE Or _
            TOKEN_ADJUST_PRIVILEGES Or _
            TOKEN_ADJUST_GROUPS Or _
            TOKEN_ADJUST_DEFAULT)
Private Const TOKEN_READ = (STANDARD_RIGHTS_READ Or TOKEN_QUERY)
Private Const TOKEN_WRITE = (STANDARD_RIGHTS_WRITE Or _
            TOKEN_ADJUST_PRIVILEGES Or _
            TOKEN_ADJUST_GROUPS Or _
            TOKEN_ADJUST_DEFAULT)
Private Const TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE)

Private Const TokenDefaultDacl = 6
Private Const TokenGroups = 2
Private Const TokenImpersonationLevel = 9
Private Const TokenOwner = 4
Private Const TokenPrimaryGroup = 5
Private Const TokenPrivileges = 3
Private Const TokenSource = 7
Private Const TokenStatistics = 10
Private Const TokenType = 8
Private Const TokenUser = 1

Private Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long
Private Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long
' ================================================================

Public Function WinError(ByVal lLastDLLError As Long) As String
Dim sBuff As String
Dim lCount As Long
  
  '返回與LastDLLError關聯的錯誤消息:
  sBuff = String$(256, 0)
  lCount = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_IGNORE_INSERTS, _  
              0, lLastDLLError, 0&, sBuff, Len(sBuff), ByVal 0)  
  If lCount Then  
   WinError = Left$(sBuff, lCount)
  End If
  
End Function

Public Function IsNT() As Boolean
 Static bOnce As Boolean
 Static bValue As Boolean

  '返回系統是否為NT:
  If Not (bOnce) Then
   Dim tVI As OSVERSIONINFO
   tVI.dwOSVersionInfoSize = Len(tVI)
   If (GetVersionEx(tVI) <> 0) Then
    bValue = (tVI.dwPlatformId = VER_PLATFORM_WIN32_NT)
    bOnce = True
   End If
  End If
  IsNT = bValue
End Function

Private Function NTEnableShutDown(ByRef sMsg As String) As Boolean
 Dim tLUID As LUID
 Dim hProcess As Long
 Dim hToken As Long
 Dim tTP As TOKEN_PRIVILEGES, tTPOld As TOKEN_PRIVILEGES
 Dim lTpOld As Long
 Dim lR As Long

  '在NT下,我們必須給試圖關閉系統的進程SE_SHUTDOWN_NAME特權
  '否則,所有企圖關閉系統的調用都會無效!

  '尋找Shoudown特權令牌的LUID:
  lR = LookupPrivilegeValue(vbNullString, SE_SHUTDOWN_NAME, tLUID)
  
  '如果我們找到了  
  If (lR <> 0) Then
        
  '取得當前進程的句柄:
  hProcess = GetCurrentProcess()
  If (hProcess <> 0) Then
    '打開令牌來Adjust和Query(用戶可能沒有權限)
    lR = OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken)
    If (lR <> 0) Then
          
      '好,我們現在可以調整Shutdown特權了:
      With tTP
        .PrivilegeCount = 1
        With .Privileges(0)
        .Attributes = SE_PRIVILEGE_ENABLED
        .pLuid.HighPart = tLUID.HighPart
        .pLuid.LowPart = tLUID.LowPart
        End With
      End With
      
      '現在允許這個進程關閉系統:
      lR = AdjustTokenPrivileges(hToken, 0, tTP, Len(tTP), tTPOld, lTpOld)
      
      If (lR <> 0) Then
        NTEnableShutDown = True
      Else
        Err.Raise eeSSDErrorBase + 6, App.EXEName & ".mShutDown", "不能shutdown:你沒有關閉本系統的權限。[" & WinError(Err.LastDllError) & "]"
      End If
      
      '記得用完后關閉這個句柄:
      CloseHandle hToken
    Else
      Err.Raise eeSSDErrorBase + 6, App.EXEName & ".mShutDown", "不能shutdown:你沒有關閉本系統的權限。[" & WinError(Err.LastDllError) & "]"
    End If
  Else
    Err.Raise eeSSDErrorBase + 5, App.EXEName & ".mShutDown", "不能shutdown:不能終止當前進程。[" & WinError(Err.LastDllError) & "]"
  End If
  Else
  Err.Raise eeSSDErrorBase + 4, App.EXEName & ".mShutDown", "不能shutdown:找不到SE_SHUTDOWN_NAME特權值。[" & WinError(Err.LastDllError) & "]"
  End If

End Function


Public Function NTForceTimedShutdown( _
  Optional ByVal lTimeOut As Long = -1, _
  Optional ByVal sMsg As String = "", _
  Optional ByVal sMachineNetworkName As String = vbNullString, _
  Optional ByVal bForceAppsToClose As Boolean = False, _
  Optional ByVal bReboot As Boolean = False _
  ) As Boolean
 Dim lR As Long
  
  If IsNT Then
  '如果我們在NT下,確信我們已經給了這個進程關閉系統的特權:
  If Not (NTEnableShutDown(sMsg)) Then
    Exit Function
  End If
  
  '這是定時關閉系統的代碼:
  lR = InitiateSystemShutdown(sMachineNetworkName, sMsg, lTimeOut, bForceAppsToClose, bReboot)
  If (lR = 0) Then
    Err.Raise eeSSDErrorBase + 2, App.EXEName & ".mShutDown", "InitiateSystemShutdown failed: " & WinError(Err.LastDllError)
  End If

  Else
  Err.Raise eeSSDErrorBase + 1, App.EXEName & ".mShutDown", "函數僅在Windows NT下有效。"
  End If
End Function


Public Function NTAbortTimedShutdown(Optional ByVal sMachineNetworkName As String = vbNullString)  
 AbortSystemShutdown sMachineNetworkName  
End Function  


  為了試驗一次shutdown,在窗體上放兩個Command按鈕和一個Text,然后粘貼一下代碼。注意,你必須在運行前保存你的工作,因為Shutdown也將關閉VB且不會給你任何有關保存的詢問!
  點擊Command1,它根據Text里的值開始一次定時關機。要終止Shutdown,點Command2。

Private Sub Command1_Click()
  If (MsgBox("你確定要強制定時關機嗎?", vbYesNo Or vbQuestion) = vbYes) Then
  NTForceTimedShutdown CLng(Text1.Text), "系統將在" & Text1.Text & "秒后關閉..."
End If
End Sub

Private Sub Command2_Click()
NTAbortTimedShutdown
End Sub

Private Sub Form_Load()
Text1.Text = 60
End Sub

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        高清不卡一二三区| 国产女主播视频一区二区| 欧美性色欧美a在线播放| 亚洲另类春色校园小说| 色妞www精品视频| 亚洲午夜精品在线| 日韩欧美久久久| 国产传媒一区在线| 综合久久给合久久狠狠狠97色| 成人午夜av在线| 亚洲精品水蜜桃| 欧美一卡二卡三卡四卡| 国产精品亚洲一区二区三区在线| 日本一区二区动态图| 在线看国产一区二区| 免费成人美女在线观看.| 国产日韩精品一区二区浪潮av| 99re这里只有精品视频首页| 日韩综合小视频| 国产精品久99| 欧美电影免费观看高清完整版在线 | 一区2区3区在线看| 日韩免费看的电影| 91老司机福利 在线| 日本v片在线高清不卡在线观看| 中文成人av在线| 日韩欧美二区三区| 欧美午夜精品久久久久久超碰| 国产一区二区三区香蕉| 婷婷国产在线综合| 亚洲精品乱码久久久久久黑人| 久久蜜桃av一区精品变态类天堂| 欧洲亚洲精品在线| 成人性生交大合| 九色综合狠狠综合久久| 亚洲一区视频在线观看视频| 欧美激情一区二区在线| 亚洲精品一区二区三区四区高清| 欧美性生活久久| 91国偷自产一区二区三区成为亚洲经典 | 亚洲成人黄色小说| 中文字幕一区二区三区四区不卡| 精品国产髙清在线看国产毛片| 精品视频1区2区| 在线影视一区二区三区| 91丨九色丨蝌蚪富婆spa| 成人夜色视频网站在线观看| 国产一区二区三区四区在线观看| 午夜国产精品一区| 午夜精品福利一区二区三区蜜桃| 亚洲另类在线视频| 亚洲欧洲在线观看av| 国产精品女人毛片| 国产精品乱人伦中文| 亚洲国产精品v| 中文一区二区完整视频在线观看| xf在线a精品一区二区视频网站| 日韩精品自拍偷拍| 久久久久免费观看| 久久综合九色综合久久久精品综合| 精品少妇一区二区三区在线播放 | 色综合天天在线| 成人毛片在线观看| 91在线免费看| 欧美日韩午夜在线视频| 欧美一级黄色大片| 久久久久久久久久久99999| 国产亚洲一区二区三区在线观看| 日本一区二区免费在线| 日韩一区在线免费观看| 亚洲手机成人高清视频| 亚洲午夜免费视频| 麻豆久久久久久久| 国产一区二区三区美女| 99视频精品在线| 欧美日韩电影在线播放| 精品剧情在线观看| 亚洲欧洲99久久| 石原莉奈一区二区三区在线观看| 久久精品国产99国产精品| 丁香天五香天堂综合| 91美女视频网站| 欧美精品日韩一本| 久久久久青草大香线综合精品| 欧美精彩视频一区二区三区| 亚洲女厕所小便bbb| 日本大胆欧美人术艺术动态| 国产成人av一区二区| 欧美天堂一区二区三区| 久久久久久久电影| 亚洲一区二区三区在线| 国产精一区二区三区| 99r国产精品| 久久免费视频色| 丝袜美腿亚洲综合| 91丨九色丨蝌蚪富婆spa| 欧美精品一区二区不卡| 亚洲国产成人porn| 成人高清在线视频| 日韩欧美高清dvd碟片| 一区二区三区在线免费观看| 国产成人亚洲综合a∨猫咪| 欧美精品久久久久久久多人混战| 国产精品三级在线观看| 精品综合久久久久久8888| 欧美自拍偷拍一区| 国产精品毛片无遮挡高清| 美女在线视频一区| 欧美理论电影在线| 亚洲一区在线免费观看| 国产99精品国产| 日韩女优电影在线观看| 亚洲影视在线观看| 91免费观看国产| 久久精品亚洲乱码伦伦中文 | 国产日本欧洲亚洲| 性久久久久久久| 色婷婷激情久久| 中文字幕日韩一区二区| 懂色av中文一区二区三区| 亚洲精品一区在线观看| 日本在线观看不卡视频| 欧美日韩中文字幕一区| 亚洲综合在线第一页| 色狠狠av一区二区三区| 亚洲日穴在线视频| 99久久99精品久久久久久| 国产精品成人一区二区艾草 | 麻豆国产欧美日韩综合精品二区| 欧美在线观看视频一区二区三区| 国产精品狼人久久影院观看方式| 国产成人在线看| 国产精品乱人伦| 91首页免费视频| 夜夜爽夜夜爽精品视频| 欧美日韩一区二区三区四区| 亚洲国产欧美在线人成| 欧美一区二区精美| 精品一区二区av| 国产亚洲欧美激情| 成人av网在线| 亚洲男人电影天堂| 欧美日韩五月天| 伦理电影国产精品| 国产欧美日韩亚州综合 | 极品美女销魂一区二区三区免费| 欧美一卡二卡在线| 国产一区二区三区免费看 | 日韩一区二区三免费高清| 美女任你摸久久| 国产日韩欧美精品电影三级在线| 福利电影一区二区| 亚洲线精品一区二区三区八戒| 91精品国产入口在线| 国产精品一品视频| 1024亚洲合集| 欧美一区二区性放荡片| 国产a精品视频| 午夜亚洲国产au精品一区二区| 日韩午夜精品视频| 99久久精品免费精品国产| 午夜精品福利在线| 国产日韩欧美制服另类| 在线免费不卡电影| 国产乱码精品一品二品| 亚洲一区二区三区不卡国产欧美 | 国产精品美女视频| 欧美在线播放高清精品| 美美哒免费高清在线观看视频一区二区 | 精品久久久久久无| 91色综合久久久久婷婷| 免费在线成人网| 自拍偷拍亚洲综合| 日韩欧美中文字幕制服| 色94色欧美sute亚洲线路二| 美国av一区二区| 亚洲精品日日夜夜| 久久网站最新地址| 欧美日韩在线播放三区| 成人高清免费观看| 久久99精品久久久久久动态图| 中文一区二区完整视频在线观看| 欧美放荡的少妇| 日本精品一区二区三区四区的功能| 精品一区二区三区在线播放视频| 伊人婷婷欧美激情| 国产女同性恋一区二区| 欧美电视剧免费观看| 欧美视频三区在线播放| 99热精品国产| 高清在线成人网| 国产一区二区三区高清播放| 亚洲福利国产精品| 亚洲影院免费观看| 日韩久久一区二区| 成人欧美一区二区三区1314| 国产欧美日韩另类视频免费观看| 日韩免费福利电影在线观看| 91精品国产欧美一区二区| 欧美日韩一区 二区 三区 久久精品|