Сталкивался я с этим правда не в Аксапте, а в Аксессе. Нарыл я на бескрайних просторах следующий код на VB:
Код:
' Расширенное имя польователя (в формате Домен\Пользователь)
Private Declare Function GetUserNameAPI Lib "secur32.dll" Alias "GetUserNameExA" (ByVal NameFormat As Long, ByVal lpNameBuffer As String, nSize As Long) As Long
Public Function GetWindowsUser() As String
Dim sBuffer As String
Dim lLen As Long
sBuffer = Space(255 + 1)
lLen = Len(sBuffer)
If CBool(GetUserNameAPI(2, sBuffer, lLen)) Then
GetWindowsUser = StrZ(sBuffer)
Else
GetWindowsUser = ""
End If
End Function
Я думаю, что перевести его в Аксапту не составит труда. Замечу, что наиболее популярная функция WinAPI GetUserName не возвращает имя домена
А код, приведенный по ссылке - слишком длинный
Его читать долго
Функция StrZ - она невстроенная - она просто отсекает для VB символ с кодом 0. Но для полноты картины - приведу и эту функцию:
Код:
' Отсекание символа с кодом 0
Public Function StrZ(par As String) As String
Dim nSize As Long, i As Long, Rez As String
nSize = Len(par)
i = InStr(1, par, vbNullChar) - 1
If i > nSize Then i = nSize
If i < 0 Then i = nSize
StrZ = Mid(par, 1, i)
End Function