Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As LongPrivate Sub Command1_Click()
    
    Dim strName As String
    Dim lngLength As Long
    strName = Space(254)
    lngLength = 254
    
    Call GetComputerName(strName, lngLength)
    
End Sub

解决方案 »

  1.   

    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As LongPrivate Sub Form_Load()
        Dim sBuffer As String
        Dim lSize As Long
        sBuffer = Space$(255)
        lSize = Len(sBuffer)
        Call GetUserName(sBuffer, lSize)
        End Sub
      

  2.   

    显示计算机的名称 
    Declare Function GetComputerName Lib "Kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Sub GetComputerName_test()
    Dim Name As String, Length As Long
    Length = 255
    Name = String(Length, 0)
    GetComputerName Name, Length
    Name = Left(Name, Length)
    MsgBox "此电脑的名称:=" & Name, , "GetComputerName"
    End SubSub Main()
    GetComputerName_test
    End Sub 还可以读注册表[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName]
    "ComputerName"="MyPc"
      

  3.   

    【函数】
    GetComputerName【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long【说明】  取得这台计算机的名称 【返回值】  Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError 【其它】  也许你会发现,MAX_COMPUTERNAME_LENGTH常数在vb自带的api文本查看器中找不到。的确,我也没有找到。但我有一个工具:Listapi,这个常数在它那里可以找到【参数表】
      lpBuffer -------  String,随同计算机名载入的字串缓冲区  nSize ----------  Long,缓冲区的长度。这个变量随同返回计算机名的实际长度载入
      

  4.   

    Option Explicit'In a module
    Public Const ERROR_SUCCESS = 0
    Public Const INADDR_NONE = &HFFFF
    Public Const MIN_SOCKETS_REQD As Long = 1
    Public Const WS_VERSION_REQD As Long = &H101
    Public Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &H100 And &HFF&
    Public Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &HFF&
    Public Const SOCKET_ERROR As Long = -1Public Const WSADESCRIPTION_LEN = 257
    Public Const WSASYS_STATUS_LEN = 129
    Public Const WSABASEERR = 10000
    Public Const WSAEINTR = (WSABASEERR + 4)
    Public Const WSAEFAULT = (WSABASEERR + 14)
    Public Const WSAEINVAL = (WSABASEERR + 22)
    Public Const WSAEINPROGRESS = (WSABASEERR + 50)
    Public Const WSAENETDOWN = (WSABASEERR + 50)
    Public Const WSASYSNOTREADY = (WSABASEERR + 91)
    Public Const WSAVERNOTSUPPORTED = (WSABASEERR + 92)
    Public Const WSANOTINITIALISED = (WSABASEERR + 93)
    Public Const WSAHOST_NOT_FOUND = 11001
    Public Const WSATRY_AGAIN = 11002
    Public Const WSANO_RECOVERY = 11003
    Public Const WSANO_DATA = 11004Public Const MAX_WSADescription = 256
    Public Const MAX_WSASYSStatus = 128Public Type WSAData
        wVersion As Integer
        wHighVersion As Integer
        szDescription(0 To MAX_WSADescription) As Byte
        szSystemStatus(0 To MAX_WSASYSStatus) As Byte
        wMaxSockets As Integer
        wMaxUDPDG As Integer
        dwVendorInfo As Long
    End Type
    Type WSADataInfo
        wVersion As Integer
        wHighVersion As Integer
        szDescription As String * WSADESCRIPTION_LEN
        szSystemStatus As String * WSASYS_STATUS_LEN
        iMaxSockets As Integer
        iMaxUdpDg As Integer
        lpVendorInfo As String
    End Type
    Public Type HOSTENT
        hName As Long
        hAliases As Long
        hAddrType As Integer
        hLen As Integer
        hAddrList As Long
    End TypeDeclare Function WSAStartupInfo Lib "WSOCK32" Alias "WSAStartup" (ByVal wVersionRequested As Integer, lpWSADATA As WSADataInfo) As Long
    Declare Function WSACleanup Lib "WSOCK32" () As Long
    Declare Function WSAGetLastError Lib "WSOCK32" () As Long
    Declare Function WSAStartup Lib "WSOCK32" (ByVal wVersionRequired As Long, lpWSADATA As WSAData) As Long
    Declare Function gethostname Lib "WSOCK32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
    Declare Function gethostbyname Lib "WSOCK32" (ByVal szHost As String) As Long
    Declare Function gethostbyaddr Lib "WSOCK32" (addr As Long, ByVal addrlen As Long, ByVal addrtype As Long) As Long
    Declare Function inet_addr Lib "WSOCK32" (ByVal cp As String) As LongDeclare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
    Declare Sub CopyMemoryIP Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)Public Function GetIPHostName() As String
        Dim sHostName As String * 256
        If Not SocketsInitialize() Then
            GetIPHostName = ""
            Exit Function
        End If
        If gethostname(sHostName, 256) = SOCKET_ERROR Then
            GetIPHostName = ""
            MsgBox "Windows Sockets error " & Str$(WSAGetLastError()) & " has occurred. Unable to successfully get Host Name."
            SocketsCleanup
            Exit Function
        End If
        GetIPHostName = Left$(sHostName, InStr(sHostName, Chr(0)) - 1)
        SocketsCleanup
    End FunctionPublic Function SocketsInitialize() As Boolean
        Dim WSAD As WSAData
        Dim sLoByte As String
        Dim sHiByte As String
        If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then
            MsgBox "The 32-bit Windows Socket is not responding."
            SocketsInitialize = False
            Exit Function
        End If
        If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
            MsgBox "This application requires a minimum of " & CStr(MIN_SOCKETS_REQD) & " supported sockets."
            SocketsInitialize = False
            Exit Function
        End If
        If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
            sHiByte = CStr(HiByte(WSAD.wVersion))
            sLoByte = CStr(LoByte(WSAD.wVersion))
            MsgBox "Sockets version " & sLoByte & "." & sHiByte & " is not supported by 32-bit Windows Sockets."
            SocketsInitialize = False
            Exit Function
        End If
        'must be OK, so lets do it
        SocketsInitialize = True
    End FunctionPublic Function HiByte(ByVal wParam As Integer)
        HiByte = wParam \ &H100 And &HFF&
    End FunctionPublic Function LoByte(ByVal wParam As Integer)
        LoByte = wParam And &HFF&
    End FunctionPublic Sub SocketsCleanup()
        If WSACleanup() <> ERROR_SUCCESS Then
            MsgBox "Socket error occurred in Cleanup."
        End If
    End Sub