Mit den beiden Tipps Option Explicit ' Konstanten Private Const SE_DEBUG_NAME = "SeDebugPrivilege" Private Const SE_PRIVILEGE_ENABLED = &H2 Private Const ANYSIZE_ARRAY = 1 Private Const TOKEN_ADJUST_PRIVILEGES = &H20 Private Const TOKEN_QUERY = &H8 ' Typen 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(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type Private Type LARGE_INTEGER LowPart As Long HighPart As Long End Type ' API's 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 LARGE_INTEGER) As Long Private Declare Function AdjustTokenPrivileges Lib "advapi32" ( _ ByVal TokenHandle As Long, _ ByVal DisableAllPrivileges As Long, _ ByRef NewState As TOKEN_PRIVILEGES, _ ByVal BufferLength As Long, _ ByRef PreviousState As Any, _ ByRef ReturnLength As Any) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Public Function EnableDebugPrivNT() As Boolean Dim hToken As Long Dim DebugValue1 As LARGE_INTEGER Dim DebugValue2 As LUID Dim tkp As TOKEN_PRIVILEGES Dim lResult As Long ' Handle des AccessToken ermitteln lResult = OpenProcessToken(GetCurrentProcess, _ TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) If lResult = 0 Then EnableDebugPrivNT = False Exit Function End If ' Debuging Privilegien setzen lResult = LookupPrivilegeValue("", SE_DEBUG_NAME, DebugValue1) If lResult = 0 Then EnableDebugPrivNT = False Exit Function End If DebugValue2.HighPart = DebugValue1.HighPart DebugValue2.LowPart = DebugValue1.LowPart tkp.PrivilegeCount = 1 tkp.Privileges(0).pLuid = DebugValue2 tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED ' Debuging Privilegien aktivieren lResult = AdjustTokenPrivileges(hToken, False, tkp, 0, ByVal 0&, 0) If lResult = 0 Then EnableDebugPrivNT = False Exit Function End If EnableDebugPrivNT = True End Function Dieser Tipp wurde bereits 4.941 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevCommand 3.0 ![]() Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office oder auch Vista-Style), inkl. große Symbolbibliothek. Buchempfehlung Tipp des Monats Dieter Otter 2-dimensionales Array nach beliebiger Spalte sortieren Mit dieser Funktion lässt sich ein 2-dimensionales Array beliebiger Daten nach einer bestimmten Spalte sortieren TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 25 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1524.50 EUR... |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||


Debugging Privilegien



