Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Как получить полное имя пользователя

Рабочие станции Windows NT могут быть организованы в домен, который является набором компьютеров в в сети Windows NT. Администратор домена поддерживает информацию об учётных записях пользователей и рабочих групп.

Если Вы знаете имя пользователя и имя домена, то для нахождения полного имени пользователя необходимо проделать следующее:

  1. Преобразовать имя пользователя и имя домена в Unicode, если конечно они уже не являются строками Unicode. Это требование API функций LAN Менеджера, которые будут использоваться в следующих шагах.

  2. Определить имя контроллера домена (DC) для данного имени домена при помощи вызова NetServerEnum().

  3. Определить имя пользователя при помощи NetUserGetInfo()

  4. Если программа не работает со строками Unicode, то преобразовать полное имя пользователя в ANSI.

Код, приведённый ниже, представляет из себя функцию, которая получает в первых двух параметрах имя пользователя и домена, а в третьем параметре возвращает полное имя пользователя.

Дополнительную информацию о том, как можно получить текущего пользователя и домен, можно найти в статье из Microsoft Knowledge Base:

Q111544 Как получить текущее имя пользователя и имя домена

Пример кода

   #include <windows.h>
    #include <lm.h>
    #include <stdio.h>
 
    /********************************************************************\
    * Функция: GetFullName( char *UserName, char *Domain, char *dest );  *
    *                                                                    *
    * Параметры:                                                         *
    *    UserName: имя пользователя                                      *
    *    Domain  : домен, которому принадлежит пользователь              *
    *    dest    : Получаемое полное имя пользователя                    *
    *                                                                    *
    \********************************************************************/
 
    BOOL GetFullName(char *UserName, char *Domain, char *dest)
    {
       WCHAR  wszUserName[256];           // имя пользователя в Unicode
       WCHAR  wszDomain[256];
       LPBYTE ComputerName;
 
       struct _SERVER_INFO_100 *si100;   // Структура для сервера
       struct _USER_INFO_2 *ui;          // Структура для пользователя
 
       // Конвертируем имя пользователя и домена из ASCII в Unicode.
 
       MultiByteToWideChar( CP_ACP, 0, UserName,
          strlen(UserName)+1, wszUserName, sizeof(wszUserName) );
       MultiByteToWideChar( CP_ACP, 0, Domain,
          strlen(Domain)+1, wszDomain, sizeof(wszDomain) );
 
       // Получаем имя компьютера, который является контроллером домена (DC)
       // для указанного домена.
 
       NetGetDCName( NULL, wszDomain, &ComputerName );
 
       // Ищем пользователя в контроллере домена.
 
       if(NetUserGetInfo( (LPWSTR) ComputerName,
          (LPWSTR) &wszUserName, 2, (LPBYTE *) &ui))
       {
          printf( "Error getting user information.\n" );
          return( FALSE );
       }
 
       // Преобразуем полное имя из Unicode в ASCII.
 
       WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name,
          -1, dest, 256, NULL, NULL );
 
       return( TRUE );
    } 

 



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS