Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2013, 23:11   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию имена пользователей Windows

Код:
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include <windows.h> 
#include <lm.h>
#include <iostream>

int main()
{
	NET_API_STATUS nStatus;
	LPUSER_INFO_0 pBuf = NULL;
	LPUSER_INFO_0 pTmpBuf = NULL;
	 DWORD dwEntriesRead = 0;
	 DWORD dwTotalEntries = 0;
     DWORD dwResumeHandle = 0;
	nStatus = NetUserEnum(NULL,0, FILTER_NORMAL_ACCOUNT,  (LPBYTE*)&pBuf, MAX_PREFERRED_LENGTH, &dwEntriesRead,
		&dwTotalEntries, &dwResumeHandle);
	int i;
	pTmpBuf = pBuf;
	for (i = 0; (i < dwEntriesRead); i++)
    {
		std::cout << pTmpBuf->usri0_name << std::endl;
		pTmpBuf++;
     }

	system("PAUSE");

	return 0;
}
написал такой код, но на выходе почему то получаю не имена, а чтото непонятное) Похоже на адреса в пам'яти. Не пойму почему, может я не все понял с MSDN.
Pein95 вне форума Ответить с цитированием
Старый 09.11.2013, 23:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

usri0_name это указатель. Может его разименовывать надо?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2013, 23:23   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

не дочитал
Код:
for (i = 0; (i < dwEntriesRead); i++)
    {
		LPWSTR t = pTmpBuf->usri0_name;
		std::cout << *t << std::endl;
		pTmpBuf++;
     }
сделал так, но теперь выводит просто цыфры
Pein95 вне форума Ответить с цитированием
Старый 09.11.2013, 23:28   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Может потому что LPWSTR - это widestring?
Тебе нужен NetUserEnumA и LPSTR соответственно для std::cout, который если не ошибаюсь не предназначен для юникода.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2013, 00:00   #5
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

NetUserEnumA это функция?
просто в MSDN такой не нашол.
Pein95 вне форума Ответить с цитированием
Старый 10.11.2013, 04:20   #6
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Pein95
ликбез: В основном в винде есть два набора функций с A (анси) и W (юникод) (нет NetUserEnum, а есть NetUserEnumA и NetUserEnumW). Для упрощения жизни разрабов в Мелкософте задефайнили в зависимости от настроек проекта одну из них на NetUserEnum.

П.С. В последних версия винды все функции юникодовские, а анси версии просто заглушки-переходники к ним с перекодированием параметров, результата.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 10.11.2013, 15:16   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

В последних версия винды все функции юникодовские

PS. в "последних" - это начиная с Windows NT 3.1, 1993 год. :lol:
Rififi вне форума Ответить с цитированием
Старый 10.11.2013, 16:43   #8
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
в "последних" - это начиная с Windows NT 3.1, 1993 год. :lol:
Ага и дураки в мелкософте зачем-то выпускали unicows.dll для 9x и Me... )))
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 10.11.2013, 16:49   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну вы нашли о чем спорить )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вернуть имена пользователей в домене? kate158 Win Api 4 10.05.2012 12:57
Длинные имена. Консоль Windows. mephist Windows 1 18.06.2009 16:38
Что занчат имена версий Windows XP,Vista 4444 Windows 2 07.06.2008 11:04