GetUserName

Получает имя пользователя для текущего процесса. Обычно это имя пользователя зарегистрировавшегося в системе.

Вот она.

BOOL GetUserName
(
LPTSTR lpBuffer,// указатель на буфер
LPDWORD nSize// получает размер возвращает количество символов
);

Размер буфера должен быть достаточный для того, чтобы вместить пользователя. Определение размера носит имя UNLEN и описана в Lmcons.h. При неудачном выполнении функция вернет 0:

#define UNLEN 256// Maximum user name length 

Ведь имя можно получить по разному, например, получить из реестра. Весь код и структуру классов можно посмотреть в проекте, а вот сам конкретный код получения функции имени пользователя.

CString CEasyGetUserName::Get()
{
char buffer[UNLEN+1];// буфер
DWORD size;// размер
size=sizeof(buffer);// размер буфера
if (GetUserName(buffer,&size)==0)
throw "Error GetUserName";// при ошибке функция вернет 0
return buffer;// вернуть результат
}

Структура классов довольно сложная для такой простой задачи. Стоит создавать такое количество классов или нет, это вопрос. Мне просто нравиться так программировать. Можно в любой момент все изменить и это хорошо. Ну, например при переходе например на Windows 9000 beta 2 bild 199 :-) какой нибуть все что нужно только исправить одну функцию а все остальное будет работать.

 

 
« Предыдущая статья   Следующая статья »