6
A
回答
16
一种方法是问环境:
Dim UserName As String
Dim UserDomain As String
UserName = Environ("USERNAME")
UserDomain = Environ("USERDOMAIN")
0
这个什么(在Windows NT工程和仅占明显。)?
Private Function IsAdmin() As Boolean
Dim groups As Object
Dim user As Object
Set groups = GetObject("WinNT://./administrators")
For Each user In groups.members
If UCase(Environ("USERNAME")) = UCase(user.Name) Then
IsAdmin = True
End If
Next user
End Function
2
基本上你需要进行Windows API调用。 正在搜索vbnet.mvps.org我得到以下答案。
8
和API版本:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (lpSystemName As String, ByVal lpAccountName As String, sid As Any, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Long) As Long
Private Sub Form_Load()
Dim sDomainName As String * 255
Dim lDomainNameLength As Long
Dim sUserName as String
Dim bUserSid(255) As Byte
Dim lSIDType As Long
Rem Create a buffer
sUserName = String(100, Chr$(0))
Rem Get the username
GetUserName sUserName, 100
Rem strip the rest of the buffer
sUserName = Left$(sUserName, InStr(sUserName, Chr$(0)) - 1)
rem Show the temppath and the username
MsgBox "Hello " + strUserName
lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, _
lSIDType)
if lResult <>0 then
msgbox sDomainName
end if
end sub
4
使用WshNetwork对象,引用后可用下列方法您的项目中的Windows脚本宿主对象模型:
Dim Network As WshNetwork
Set Network = New WshNetwork
Debug.Print "ComputerName: " & Network.ComputerName
Debug.Print "UserDomain: " & Network.UserDomain
Debug.Print "UserName: " & Network.UserName
为了保持一致性,我将结果转换为大写或小写,但这些都是您需要的方法。
请注意,在没有登录到域的计算机上运行时,ComputerName和UserDomain都返回相同的东西 - 计算机名称。
相关问题
- 1. 如何在Windows XP下使用C获取当前系统IP
- 2. 在Windows上使用C++获取当前用户名
- 3. 如何使用NAnt获取当前登录的Windows用户
- 4. 获取windows XP,windows 7当前登录VC中的用户名称
- 5. 获取当前Windows用户VB.net
- 6. 如何使用ASP.NET Core RC2 MVC6和IIS7获取当前Windows用户
- 7. 如何在Access VBA中获取当前登录的Windows用户?
- 8. 如何在Windows中获取当前用户?
- 9. 如何在silverlight中获取Windows的当前用户名?
- 10. 如何在Windows中获取当前用户的主目录
- 11. 如何在Windows 10 UWP上获取用户区域?
- 12. 如何从boto获取当前用户的区域?
- 13. 如何获取当前用户目录?
- 14. 如何获取当前用户名?
- 15. 如何获取用户当前位置
- 16. 在Windows XP上Vb6 http发布请求
- 17. 如何在Windows Phone的Google地图上获取用户的当前位置
- 18. 获取watchkit 2.0上用户的当前区域
- 19. 如何使用C#在.NET中获取当前用户名?
- 20. 使用Spring @SubscribeMapping获取当前用户
- 21. 使用WMI获取当前用户名
- 22. 如何获取用户在android上的当前位置?
- 23. 获取当前用户名
- 24. Svn获取当前用户
- 25. 获取当前用户
- 26. 获取当前用户名
- 27. 在SharePoint 2007上获取客户端上的当前用户名
- 28. 如何获取当前用户的当前日期?
- 29. 如何使用坐标获取当前区域名称?
- 30. 如何使用Python/GAE获取当前域名?
如果您需要根据当前用户进行检查,这是非常不安全的。修改环境变量就足够了(在命令提示符中使用`SET USERNAME = pwned`并从该提示符运行应用程序)。 – Fulvio 2016-03-10 19:04:11
“不安全”一词意味着它存在安全风险。事实并非如此。当然,流程的整个环境都可以写入,但通常情况就是这样 - 尽管如此,各种应用程序都是从环境中读取它们的内容。如果任何人根据他们从环境中读取的值确定需要适当授权的任务,那完全是他们的错。 – Tomalak 2016-03-10 19:30:07