'example by Donavon Kuhn ([email protected])
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Form_Load()
    Dim dwLen As Long
    Dim strString As String
    'Create a buffer
    dwLen = MAX_COMPUTERNAME_LENGTH + 1
    strString = String(dwLen, "X")
    'Get the computer name
    GetComputerName strString, dwLen
    'get only the actual data
    strString = Left(strString, dwLen)
    'Show the computer name
    MsgBox strString
End Sub

解决方案 »

  1.   

    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 TypePrivate Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
            (lpVersionInformation As OSVERSIONINFO) As Long
    Private Declare Function GetComputerName Lib "kernel32" Alias _
            "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As LongPrivate Sub Command1_Click()
    Dim len5 As Long, aa As Long
    Dim cmprName As String
    Dim osver As OSVERSIONINFO'取得Computer Name
    cmprName = String(255, 0)
    len5 = 256
    aa = GetComputerName(cmprName, len5)
    cmprName = Left(cmprName, InStr(1, cmprName, Chr(0)) - 1)
    Debug.Print "Computer Name = "; cmprName'取得OS的版本
    osver.dwOSVersionInfoSize = Len(osver)
    aa = GetVersionEx(osver)
    Debug.Print "MajorVersion "; osver.dwMajorVersion
    Debug.Print "MinorVersion "; osver.dwMinorVersion
    Select Case osver.dwPlatformId
    Case 0
       Debug.Print "Window 3.1"
    Case 1
       Debug.Print "Win95"
    Case 2
       Debug.Print "WinNT"
    End Select
    End Sub
      

  2.   

    Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Public Function MachineName() As String
    Dim sBuffer As String * 255
    If GetComputerName(sBuffer, 255&) <> 0 Then
        MachineName = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
    Else
        MachineName = "(未知)"
    End If
    End Function
      

  3.   

    如何得到一个计算机的计算机名??
    根据什么查?
    Domain? ActiveDirectory? IP地址? 还是遍历?
    先讲清楚你的要求
      

  4.   

    Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Public Function MachineName() As String
    Dim sBuffer As String * 255
    If GetComputerName(sBuffer, 255&) <> 0 Then
        MachineName = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
    Else
        MachineName = "(未知)"
    End If
    End Function
      

  5.   

    Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long'得到计算机名
    Public Function ComputerName() As String
        Dim Name As String * 20
        Dim sName As Long
        sName = GetComputerName(Name, 20)
    End Function