Structure LUID
Dim LowPart As Long
Dim HighPart As Long
End Structure
Structure LUID_AND_ATTRIBUTES
Dim pLuid As LUID
Dim Attributes As Long
End Structure
Structure TOKEN_PRIVILEGES
Dim PrivilegeCount As Long
Dim Privileges() As LUID_AND_ATTRIBUTES
End Structure
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
' enable shutdown privilege for the current application
AdjustTokenPrivileges(hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount))
End Sub