Узнать имя пользователя, открывшего файл (в локальной сети) - VBA
Формулировка задачи:
Нужно узнать перед заполнением файла Excel или Word данными из Access (если он уже открыт) кто из пользователей открыл его (чтобы "попросить" закрыть). Файл лежит на сервере, все пользователи могут в него что-то вносить. Windows 7, Офис 2010 и 2013
есть такой код. Как его соединить с моим?
мой код, который у меня показывает только имя пользователя "моего" компьютера
Решение задачи: «Узнать имя пользователя, открывшего файл (в локальной сети)»
textual
Листинг программы
Public Sub Get_LogonUser() MsgBox "LogonDomain: " & GetLogonDomainuser & " / " & "LogonUser: " & GetLogonUser End Sub Public Function GetLogonDomainuser() As String Dim lResult As Long Dim i As Integer Dim bUserSid(255) As Byte Dim sUserName As String Dim sDomainName As String * 255 Dim lDomainNameLength As Long Dim lSIDType As Long sUserName = GetLogonUser lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, lSIDType) sDomainName = Space(lDomainNameLength) lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, lSIDType) If (lResult = 0) Then MsgBox "Ошибка: невозможно найти имя домена для юзера: " & sUserName Exit Function End If sDomainName = Left$(sDomainName, InStr(sDomainName, Chr$(0)) - 1) GetLogonDomainuser = Trim(sDomainName) End Function Public Function GetLogonUser() As String Dim strTemp As String, strUserName As String strTemp = String(100, Chr$(0)) strTemp = Left$(strTemp, InStr(strTemp, Chr$(0)) - 1) strUserName = String(100, Chr$(0)) GetUserName strUserName, 100 strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1) GetLogonUser = strUserName End Function Public Function UserName() As String Dim cn As String Dim ls As Long Dim Res As Long cn = String(1024, 0) ls = 1024 Res = GetUserName(cn, ls) If Res <> 0 Then UserName = Mid(cn, 1, InStr(cn, Chr(0)) - 1) Else UserName = "" End If End Function Public Sub Get_ComputerName() Dim scomp As String, h As String scomp = Space(255) h = GetComputerName(scomp, 255) CompName = Trim(scomp) MsgBox "Имя компьютера, с которого открыт файл: " & CompName End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д