我正在尝试获取当前用户的用户名。当我以Johnny Smith身份登录并在没有管理员权限的情况下运行我的应用程序时,它将返回正确的用户名Johnny Smith。但问题是,当我右键单击并选择“”时,Windows将提示我为管理员提供登录屏幕,登录后我的应用程序返回用户名admin,而不是当前登录的用户。
我试过:
strUserLabel.Text = Environment.UserName也是
Dim WSHNetwork = CreateObject("WScript.Network")
Dim strUser = ""
While strUser = ""
strUser = WSHNetwork.Username
End While
strUserLabel.Text = strUser当提示为管理员时,两者都会返回管理员用户名。
发布于 2014-06-23 11:33:27
在MSDN文档中,我发现它们更改了属性Environment.UserName的定义。
在.NET 3之前
获取启动当前线程的人的用户名。
从第3版开始
获取当前登录到Windows操作系统的人的用户名
发布于 2019-02-01 17:20:20
我认为上面接受的答案是查找用户名的一种非常资源密集型的方法。它有包含数百个条目的嵌套循环。在我的8 takes个人电脑,这需要2+秒!
不如:
SystemInformation.Username,以及Environment.UserDomainName在VS2017中测试
发布于 2019-03-18 19:41:16
SystemInformation.Username不适用于某些应用程序。在我的例子中,代码是作为系统运行的,而explorer.exe是以丹尼尔的身份运行的。SystemInformation.Username报表系统。
https://stackoverflow.com/questions/24364172
复制相似问题