毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

vb如何获取用户的权限值

更新时间:2013-11-11:  来源:毕业论文

如何判断这个用户是管理员还是普通权限呢?
仅此而已,谢谢。
Option Explicit   Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Declare Function lstrcpyW Lib "kernel32.dll" (ByVal lpString1 As Long, ByVal lpString2 As Long) As LongPrivate Declare Function lstrlenW Lib "kernel32.dll" (ByVal lpString As Long) As LongPrivate Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal pBuffer As Long) As LongPrivate Declare Function NetUserGetLocalGroups Lib "netapi32.dll" (ByVal lpServerName As Long, ByVal lpUserName As Long, ByVal Level As Long, ByVal Flags As Long, ByRef bufptr As Long, ByVal prefmaxlen As Long, ByRef entriesread As Long, ByRef totalentries As Long) As Long  Private Const NERR_Success As Long = 0& Private Const ERROR_ACCESS_DENIED As Long = 5& Private Const NERR_BASE As Long = 2100 Private Const NERR_InvalidComputer As Long = (NERR_BASE + 251) Private Const NERR_UserNotFound As Long = (NERR_BASE + 121) Private Const LG_INCLUDE_INDIRECT As Long = (&H1)   Sub Main()     Dim lpBuffer As Long    Dim lRead As Long    Dim lTotal As Long    Dim lRet As Long    Dim lpGroups() As Long    Dim i As Long      lRet = NetUserGetLocalGroups(StrPtr("\\servername"), StrPtr("username"), 0, 0&, lpBuffer, 1024, lRead, lTotal)     If lRet = NERR_Success Then        ReDim lpGroups(0 To lRead - 1) As Long        CopyMemory lpGroups(0), ByVal lpBuffer, lRead * 4                   For i = 0 To lRead - 1             Debug.Print GetStringFromPtr(lpGroups(i))         Next i     End If          If lpBuffer Then        Call NetApiBufferFree(lpBuffer)     End IfEnd Sub  Function GetStringFromPtr(ByVal lpString As Long) As String    Dim s As String    s = Space(lstrlenW(lpString))     lstrcpyW StrPtr(s), lpString           GetStringFromPtr = s End Function

Option Explicit   Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Declare Function lstrcpyW Lib "kernel32.dll" (ByVal lpString1 As Long, ByVal lpString2 As Long) As LongPrivate Declare Function lstrlenW Lib "kernel32.dll" (ByVal lpString As Long) As LongPrivate Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal pBuffer As Long) As LongPrivate Declare Function NetUserGetLocalGroups Lib "netapi32.dll" (ByVal lpServerName As Long, ByVal lpUserName As Long, ByVal Level As Long, ByVal Flags As Long, ByRef bufptr As Long, ByVal prefmaxlen As Long, ByRef entriesread As Long, ByRef totalentries As Long) As Long  Private Const NERR_Success As Long = 0& Private Const ERROR_ACCESS_DENIED As Long = 5& Private Const NERR_BASE As Long = 2100 Private Const NERR_InvalidComputer As Long = (NERR_BASE + 251) Private Const NERR_UserNotFound As Long = (NERR_BASE + 121) Private Const LG_INCLUDE_INDIRECT As Long = (&H1)   Sub Main()     Dim lpBuffer As Long    Dim lRead As Long    Dim lTotal As Long    Dim lRet As Long    Dim lpGroups() As Long    Dim i As Long      lRet = NetUserGetLocalGroups(StrPtr("\\servername"), StrPtr("username"), 0, 0&, lpBuffer, 1024, lRead, lTotal)     If lRet = NERR_Success Then        ReDim lpGroups(0 To lRead - 1) As Long        CopyMemory lpGroups(0), ByVal lpBuffer, lRead * 4                   For i = 0 To lRead - 1             Debug.Print GetStringFromPtr(lpGroups(i))         Next i     End If          If lpBuffer Then        Call NetApiBufferFree(lpBuffer)     End IfEnd Sub  Function GetStringFromPtr(ByVal lpString As Long) As String    Dim s As String    s = Space(lstrlenW(lpString))     lstrcpyW StrPtr(s), lpString           GetStringFromPtr = s End Function

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。