Environment ("имя пользователя") и advapi32.dll. - PullRequest
3 голосов
/ 24 января 2012

Я знаю, что есть как минимум 2 способа получения имени пользователя в приложении Access.

Вы можете использовать функцию окружения:

environ("username")

И вы можете использовать GetUsername в advapi32.dll

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)

Какой из перечисленных методов является наиболее безопасным дляиспользовать?И почему?

Возможно, некоторая справочная информация, приложения используются как на локальных компьютерах, так и на удаленных рабочих столах.

Ответы [ 2 ]

6 голосов
/ 24 января 2012

Как сказал Саймон, переменные Environ открыты для манипуляций, однако некоторые люди также любят избегать вызовов API, если это так, то это простая альтернатива:

Public Function GetUser() As String

    Dim WNet As Object

    Set WNet = CreateObject("WScript.Network")

    GetUser = WNet.UserName

    Set WNet = Nothing

End Function
2 голосов
/ 24 января 2012

Переменные окружения могут быть установлены и удалены любым пользователем, пропадают и так далее, и эти случаи, как правило, трудно воспроизвести, если кто-то даже воспринимает это как источник ошибок.

Я бы определенно пошел с адвапи.

...