把LOAD事件里的代码放FORM_ACTIVE()事件里单步调试一下看看

解决方案 »

  1.   

    你的lSize〉0时usename取得了一大堆空格,没有取得getusername API所得到得值
      

  2.   

    haitao5676(笑纹)不能在回答你的问题了,不过他已经帮你改好了这个程序,你试试吧!
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
    Private Sub Form_Load()
        Dim sBuffer, UserName As String
        Dim lSize As Long
        Dim strddd
        sBuffer = Space$(255)
        lSize = Len(sBuffer)
         Trim (GetUserName(sBuffer, lSize))
    '    MsgBox strddd
        If lSize > 0 Then
            UserName = Left$(strddd, lSize)
     '       MsgBox "*" & UserName & "###"
        Else
            UserName = "UnKnownUser"
        End If    lblUser.Caption = "授权:" & Space(5) & UserNameEnd Sub
      

  3.   

    你取得了一大堆空格,争取的应该这么写:
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
    Private Sub Form_Load()
        Dim sBuffer, UserName As String
        Dim lSize As Long
        Dim strddd
        sBuffer = Space$(255)
        lSize = Len(sBuffer)
         Trim (GetUserName(sBuffer, lSize))
    '    MsgBox strddd
        If lSize > 0 Then
            UserName = Left$(strddd, lSize)
            MsgBox "*" & UserName & "###"
        Else
            UserName = "UnKnownUser"
        End If    lblUser.Caption = "授权:" & Space(5) & UserNameEnd Sub
      

  4.   

    运行了一下你的程序,发现一个问题,就是你的变量声明语句不对!
    Dim sBuffer, UserName As String这样声明出来的语句好像不是String 类型的,对于GetUserName 而言lpbuffer 必须严格是
    String 类型,我把程序Dim sBuffer As string ,UserName As String后运行就没有错误了。