Получение полного имени пользователя
От: labslo  
Дата: 12.11.04 14:32
Оценка:
Пишу программу на VBA под MS Word. Нужно получить имя пользователя. Испоьзую для этого функцию GetUserName.Но хочется получить полное имя пользователя так как оно записано в домене, например, GetUserName возвращает мне только "petrov", а хочется получить Петров Сергей Иванович. Смотрел в Win32 есть такая функция как GetUserNameEx через котрую можно это сделать, а вот как ее подключить к VB не нашел или это вообще не возможно.
Жду вариантов.
Re: Получение полного имени пользователя
От: hermit. Россия  
Дата: 12.11.04 15:00
Оценка: 3 (1)
Здравствуйте, labslo, Вы писали:
Имеем:

BOOLEAN GetUserNameEx(
EXTENDED_NAME_FORMAT NameFormat,
LPTSTR lpNameBuffer,
PULONG nSize
);
и
typedef enum
{
NameUnknown = 0,
NameFullyQualifiedDN = 1,
NameSamCompatible = 2,
NameDisplay = 3,
NameUniqueId = 6,
NameCanonical = 7,
NameUserPrincipal = 8,
NameCanonicalEx = 9,
NameServicePrincipal = 10,
NameDnsDomain = 12
} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;


Немножко думаем и получаем:
Private Enum EXTENDED_NAME_FORMAT
  NameUnknown = 0
  NameFullyQualifiedDN = 1
  NameSamCompatible = 2
  NameDisplay = 3
  NameUniqueId = 6
  NameCanonical = 7
  NameUserPrincipal = 8
  NameCanonicalEx = 9
  NameServicePrincipal = 10
  NameDnsDomain = 12
End Enum

Private Declare Function GetUserNameEx Lib "Secur32.Dll" Alias "GetUserNameExA" (ByVal NameFormat As EXTENDED_NAME_FORMAT, ByVal lpNameBuffer As String, ByRef nSize As Long) As Long

Private Sub Form_Load()
Dim sName As String * 255
Dim lenght As Long
lenght = 255

GetUserNameEx NameFullyQualifiedDN, sName, lenght
MsgBox sName
End Sub


Но помним что:

Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Unicode: Implemented as Unicode and ANSI versions.


Всего-то делов
... << RSDN@Home 1.1.3 stable >>
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[2]: Получение полного имени пользователя
От: hermit. Россия  
Дата: 12.11.04 15:04
Оценка:
Здравствуйте, hermit., Вы писали:

В твоём случае используем NameDisplay
GetUserNameEx NameDisplay, sName, lenght
... << RSDN@Home 1.1.3 stable >>
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[2]: Получение полного имени пользователя
От: labslo  
Дата: 13.11.04 11:40
Оценка:
Здравствуйте, hermit

Все работает. Спасибо.
Re[3]: Получение полного имени пользователя
От: hermit. Россия  
Дата: 15.11.04 07:29
Оценка: +1
Здравствуйте, labslo, Вы писали:

L>Все работает. Спасибо.


Ну так оценочку бы поставил
... << RSDN@Home 1.1.3 stable >>
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.