加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows 8升级后,VBA中的Environ(“USERNAME”)返回“User”

发布时间:2020-12-14 05:43:09 所属栏目:Windows 来源:网络整理
导读:我有一个Access数据库,需要使用Environ(“USERNAME”)检查用户的用户名. 虽然这适用于使用Win7的用户,但我最近升级到Win8,代码在我的笔记本电脑上返回文本“User”.我也尝试过CreateObject(“WScript.Network”).用户名具有相同的结果. 这是Windows 8的事情,
我有一个Access数据库,需要使用Environ(“USERNAME”)检查用户的用户名.
虽然这适用于使用Win7的用户,但我最近升级到Win8,代码在我的笔记本电脑上返回文本“User”.我也尝试过CreateObject(“WScript.Network”).用户名具有相同的结果.

>这是Windows 8的事情,当其他用户升级时我会遇到问题吗?
>有没有办法可以更改/配置这个“用户”文本?我的笔记本电脑没有连接到其他用户正在使用的公司网络,因此当他们升级到Win8时,他们的笔记本电脑将返回正确的网络用户名.

解决方法

我会使用这个Windows API调用:

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

    Public Function GetWindowsUserName() As String
        Dim strUserName As String
        strUserName = String(100,Chr$(0))
        GetUserName strUserName,100
        GetWindowsUserName = Left$(strUserName,InStr(strUserName,Chr$(0)) - 1)
    End Function

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读