vb中如何通过api或者其他方法获取windows操作系统登录用户名,谢谢!

xwzheng 2007-08-09 10:06:17
rt
...全文
265 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VBAdvisor 2007-08-09
  • 打赏
  • 举报
回复
结帖了,希望你知其然,而知其所以然。
Good Luck!
VBAdvisor 2007-08-09
  • 打赏
  • 举报
回复
在NT或XP下,最好用W-type API,这样通吃中文名,英文名:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetUserNameW Lib "advapi32.dll" (lpBuffer As Byte, nSize As Long) As Long
Private Const UNLEN = 256 ' Maximum username length

Private Function CurrentUserName() As String
Dim Buffer As String
Dim yBuffer() As Byte
Dim nRet As Long
Dim nLen As Long
Const NameLength = UNLEN + 1

nLen = NameLength * 2
ReDim yBuffer(0 To nLen - 1) As Byte
If GetUserNameW(yBuffer(0), nLen) Then
Buffer = yBuffer
CurrentUserName = Left(Buffer, nLen - 1)
End If
End Function
kmlxk0 2007-08-09
  • 打赏
  • 举报
回复
api函数的方法

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Public Function UserName() As String
Dim cn As String
Dim ls As Long
Dim res As Long

cn = String(1024, 0)
ls = 1024
res = GetUserName(cn, ls)
If res <> 0 Then
UserName = Mid(cn, 1, InStr(cn, Chr(0)) - 1)
Else
UserName = ""
End If
End Function

vbman2003 2007-08-09
  • 打赏
  • 举报
回复
简单的方法:
Print VBA.Environ("USERNAME")

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧