本人程序需要根据操作系统当前登陆用户的类型来判断是否在某些方面做处理,急求如何获取当前登陆用户所属用户组类型,请问用API能实现吗?

解决方案 »

  1.   

    http://www.microsoft.com/china/technet/community/scriptcenter/user/default.mspx
      

  2.   

    先看这里http://www.china-askpro.com/msg48/qa29.shtml然后利用上面程序中的RunCommand函数:
    dim s as string
    s=RunCommand("net user 用户名"
    然后处理字串
      

  3.   

    //s=RunCommand("net user 用户名"
    s=RunCommand("net user 用户名")
      

  4.   

    用wmi的话,就这样:Option Explicit
    Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As LongPrivate Sub Command1_Click()
        Dim username As String
        username = "mc" '换成你的用户名
        Dim ComputerName As String
        ComputerName = String(255, Chr$(0))
        GetComputerName ComputerName, 255
        ComputerName = Left$(ComputerName, InStr(1, ComputerName, Chr$(0)))
        
        Dim colGroups As Object
        Set colGroups = GetObject("WinNT://" & ComputerName & "")
        colGroups.Filter = Array("group")
        Dim objGroup As Object
        Dim objUser As Object
        For Each objGroup In colGroups
            For Each objUser In objGroup.Members
                If objUser.Name = username Then
                   Debug.Print objGroup.Name
                End If
            Next
        Next
        Set objUser = Nothing
        Set objGroup = Nothing
        Set colGroups = Nothing
    End Sub
      

  5.   

    当然,这个过程完全用api实现也可以,我前些时候回答过用api的解决方法,你搜索一下吧
      

  6.   

    (暴风雨 v2.0),你提供的方法我在试,你说的前些时候回答过用api的解决方法,我没搜到,能给个地址吗?谢谢了
      

  7.   

    暴风雨代码不错,给你稍改一下:Private Sub Command1_Click()
        Dim ComputerName As String, Username As String
        ComputerName = Environ("computername")
        Username = Environ("username")
         
        Dim colGroups As Object, objGroup As Object, objUser As Object
        Set colGroups = GetObject("WinNT://" & ComputerName & "")
        colGroups.Filter = Array("group")
       
        For Each objGroup In colGroups
            For Each objUser In objGroup.Members
                If objUser.Name = Username Then MsgBox "计算机名:" & ComputerName & vbCrLf & vbCrLf & "当前用户:" & Username & vbCrLf & vbCrLf & "用户身份:" & objGroup.Name
                Next
        Next
        Set objUser = Nothing
        Set objGroup = Nothing
        Set colGroups = Nothing
    End Sub
      

  8.   

    谢谢大家的帮忙,终于搞定了,大家给的程序实在是很详细,很具体的了,csdn上的热心人可真多哦,呵呵,谢谢了