Показать сообщение отдельно
Старый 06.08.2008, 11:05   #7  
egorych is offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Регистрация: 09.11.2006
Адрес: Краснодарский край
getUserNameEx - то что надо, получилось вот так -
X++:
// Возвращает полное имя пользователя - DOMAIN\user
#define.structSize(255+1)
client static str  getUserNameEx()
{
    DLLFunction     _getUserNameEx ;
    Binary          bSize   = new Binary(#SizeOfInt);
    Binary          bStr    = new Binary(#structSize);
    DLL             _DLL    = new DLL("secur32");
;
    bSize.dWord(#Offset0,#structSize);
    _getUserNameEx = new DLLFunction(_DLL, 'GetUserNameExA');
    _getUserNameEx.returns(ExtTypes::DWord);
    _getUserNameEx.arg(ExtTypes::DWord,
                       ExtTypes::Pointer,
                       ExtTypes::Pointer);
    if (_getUserNameEx.call(2,bStr,bSize))
    {
        return bStr.string(#Offset0);
    }
    else
        return "";
}