如何在python中获取Windows用户的全名?

时间:2014-02-13 22:31:10

标签: python windows winapi username

我正在尝试获取用户的全名。不是登录名,而是显示在Windows 7开始菜单右上角的全名。它可能只显示为活动目录设置中的全名。

os.environ['USERNAME']
win32api.GetUserName()

这两个都返回登录名。如何获取用户的全名?

1 个答案:

答案 0 :(得分:7)

一些谷歌搜索给了我this link

和这段代码:

import ctypes

def get_display_name():
    GetUserNameEx = ctypes.windll.secur32.GetUserNameExW
    NameDisplay = 3

    size = ctypes.pointer(ctypes.c_ulong(0))
    GetUserNameEx(NameDisplay, None, size)

    nameBuffer = ctypes.create_unicode_buffer(size.contents.value)
    GetUserNameEx(NameDisplay, nameBuffer, size)
    return nameBuffer.value

经过测试并适用于Windows XP


正如OP在评论中指出的那样,pywin32将这个相同的API调用包装成一个更简单的函数:

win32api.GetUserName(3)

GetUserName指向ctypes.windll.secur32.GetUserNameExW3与来自3

的常量相同ctypes