![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем добрый день!
Подскажите пожалуйста, как получить Фамилию залогинивщегося на компьютере пользователя. Есть домен и на каждом компьютере пользователи логинятся под своими учётками и мне нужно получить в переменной типа string именно Фамилию которая была заполнена в Active Directory, можно Имя и Фамилию. К примеру когда нажимаешь Пуск то вверху пуска написана интересующая меня информация, прошу не путать с именем пользователя, у меня все логинятся с учётками где имя пользователя номера, но Фамилии у всех разные. Пробовал выдёргивать эту информацию из Реестра, но она не в статическом месте лежит. Кроме как делать LDAP запрос есть варианты? Я не очень умею их делать и не очень бы хотелось. Хотелось бы локально выдёргивать эту информацию. Заранее спасибо. |
#2
|
|||
|
|||
![]() У всех прошу прощения, разобрался.
Ответ нашелся на этом же сайте. Код:
{ Windows NT/2000/XP: The GetUserNameEx function retrieves the name of the user or other security principal associated with the calling thread. You can specify the format of the returned name. If the thread is impersonating a client, GetUserNameEx returns the name of the client. } const NameUnknown = 0; // Unknown name type. NameFullyQualifiedDN = 1; // Fully qualified distinguished name NameSamCompatible = 2; // Windows NT® 4.0 account name NameDisplay = 3; // A "friendly" display name NameUniqueId = 6; // GUID string that the IIDFromString function returns NameCanonical = 7; // Complete canonical name NameUserPrincipal = 8; // User principal name NameCanonicalEx = 9; NameServicePrincipal = 10; // Generalized service principal name DNSDomainName = 11; // DNS domain name, plus the user name procedure GetUserNameEx(NameFormat: DWORD; lpNameBuffer: LPSTR; nSize: PULONG); stdcall; external 'secur32.dll' Name 'GetUserNameExA'; function LoggedOnUserNameEx(fFormat: DWORD): string; var UserName: array[0..250] of char; Size: DWORD; begin Size := 250; GetUserNameEx(fFormat, @UserName, @Size); Result := UserName; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := LoggedOnUserNameEx(NameDisplay); end; Последний раз редактировалось Admin, 11.04.2012 в 15:32. |