Как я могу добраться, в настоящее время входил в систему пользователь Windows в Доступе VBA?

Да, это возможно. Например, Операционная система Linux предоставляет ptrace системные вызовы, с помощью которых вы можете не только просматривать, но и изменять память трассировки. Из ptrace [выделение добавлено]:

Системный вызов ptrace () предоставляет средство, с помощью которого один процесс («трассировщик») может наблюдают и контролируют выполнение другого процесса («след»), а проверяют и изменяют память и регистры следа . Он в основном используется для реализации отладки точек останова и трассировки системных вызовов.

BLOCKQUOTE>

9
задан Tobias Kienzler 3 May 2017 в 10:53
поделиться

5 ответов

Вы могли также использовать Environ$, но метод, указанный вопросом, лучше. Пользователи/Приложения могут изменить переменные среды.

6
ответ дан 4 December 2019 в 09:39
поделиться

Вы могли также сделать это:

Set WshNetwork = CreateObject("WScript.Network")
Print WshNetwork.UserName

Это также имеет свойство UserDomain и набор других вещей:

http://msdn.microsoft.com/en-us/library/907chf30 (По сравнению с 85) .aspx

12
ответ дан 4 December 2019 в 09:39
поделиться

Я обычно использую окружение из VBA как в следующем. У меня не было проблем, которые Ken упоминает как возможности.

Function UserNameWindows() As String
    UserNameWindows = VBA.Environ("USERNAME") & "@" & VBA.Environ("USERDOMAIN")
End Function
2
ответ дан 4 December 2019 в 09:39
поделиться

Альтернативным способом сделать это - вероятно, API, который Вы упоминаете, является лучший способ получить имя пользователя.

For Each strComputer In arrComputers
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
        For Each objItem in colItems
        Wscript.Echo "UserName: " & objItem.UserName & " is logged in at computer " & strComputer
Next
1
ответ дан 4 December 2019 в 09:39
поделиться

Много альтернативных методов в других сообщениях, но отвечать на вопрос: да, который является лучшим способом сделать это. Быстрее, чем создание COM-объекта или WMI, если все Вы хотите, имя пользователя, и доступный во всех версиях Windows от Win95.

1
ответ дан 4 December 2019 в 09:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: