Sou*_*thL 3 vba access-vba ms-access-2003
我知道在Access应用程序中至少有两种方法可以检索用户名.
您可以使用环境功能:
environ("username")
Run Code Online (Sandbox Code Playgroud)
您可以在advapi32.dll中使用GetUsername
Public Declare Function GetUserName& Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long)
s = String(l, Chr(32))
GetUserName s, l
username = Left$(s, l - 1)
Run Code Online (Sandbox Code Playgroud)
上述哪种方法最安全?为什么?
也许一些背景信息,应用程序在本地计算机和远程桌面上都使用.
正如西蒙所说,Environ变量可以操纵,但有些人也喜欢避免api调用,如果是这种情况,那么这是一个简单的替代方案:
Public Function GetUser() As String
Dim WNet As Object
Set WNet = CreateObject("WScript.Network")
GetUser = WNet.UserName
Set WNet = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)