GetComputerName VB声明 
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long 
说明 
取得这台计算机的名称 
返回值 
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError 
参数表 
参数 类型及说明 
lpBuffer String,随同计算机名载入的字串缓冲区 
nSize Long,缓冲区的长度。这个变量随同返回计算机名的实际长度载入 
注解 
注意nSize参数并不是按值传递的。参考api32.txt,了解MAX_COMPUTER_NAME常数的值
 
示例 
Dim s$
s$ = String$(MAX_COMPUTERNAME_LENGTH+1,0)
Dim dl&
Dim sz&
sz& = MAX_COMPUTERNAME_LENGTH+1
dl& = GetComputerName(s$, sz) 

解决方案 »

  1.   

    Windows API中的GetUserName可以用来解决这个问题。这个函数的声明如下: 
        Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 
        调用可以使用如下代码: 
        Dim sUsername As String 
        sUsername=Space(255) 
        GetUsername(sUsername, 255) 
      

  2.   

    Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer$, nSize As Long) As Long
      

  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.   

    实例代码:Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Private Sub Form_Load()
        Dim strString As String
        'Create a buffer
        strString = String(255, Chr$(0))
        'Get the computer name
        GetComputerName strString, 255
        'remove the unnecessary chr$(0)'s
        strString = Left$(strString, InStr(1, strString, Chr$(0)) - 1)
        'Show the computer name
        MsgBox strString
    End Sub