Я обнаружил, что в Windows 7 64 бит, на машине с доменным именем, GetUserNameEx (3, ....), который должен получить расширенный формат имени DisplayName (== 3), в буфер, работает нормально.
Однако он не работает в 32-разрядной версии Windows 7, то есть в рабочей группе, а не в домене, он возвращает ERROR_NONE_MAPPED.
Как прочитать дружеское имя человека«Фред Смит», например, таким образом, что работает на Windows?GetUserNameEx явно не работает.На самом деле, не сломанный, как мне сказали, просто не предназначен для работы для пользователей, которые не находятся в домене.Интересно, почему бы и нет, поскольку локальная информация SAM существует?И, похоже, нет другого прямого API для этого.
Если Windows выдает ERROR_NONE_MAPPED, вам не повезло, и, вероятно, нет в домене.Так что это не совсем дружественная область API.
[Похоже, можно вызвать NetUserGetInfo, чтобы прочитать локальную информацию SAM, когда нет домена, но вам нужно знатьсначала имя пользователя и пароль, а затем, возможно, будет найдено понятное имя.]
СВЯЗАННЫЙ Вопрос: здесь не упоминается проблема