Показать сообщение отдельно
Старый 05.08.2008, 18:54   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,277 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Сталкивался я с этим правда не в Аксапте, а в Аксессе. Нарыл я на бескрайних просторах следующий код на 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
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 05.08.2008 в 18:59.