在工作中,我们使用简短的登录名,例如hastingsg
,但 Outlook 和我相信 Windows 系统的其他部分也可以访问更长的名称,例如杰夫·黑斯廷斯。
在 cpython(不是 IronPython)中,如果我有较短的登录名,我怎样才能得到较长的全名?我有 pywin32和 ExchangeCDO安装。
最佳答案
通过 pywin32
的 COM 部分,您需要获取 Outlook 的应用程序对象,并从中获取其属性 Session
,它为您提供 Namespace对象(当使用唯一支持的参数值 'MAPI'
调用时,GetNamespace
方法也应该用于相同的目的)。您可以从那里使用 Accounts
属性获取 Accounts对象,这是一个典型的 COM 集合——可通过 Item
索引到其 Count
。你遍历它并检查每个 Account object:每个都有两个感兴趣的属性——UserName
(要检查是否与“较短的登录名”相等的字符串)和 DisplayName
——字符串你想要的。
是的,这是令人难以置信的冗长和令人费解的,但是,对于 MS 应用程序提供的 COM 接口(interface)的类(class)来说,这是正常的。据我所知,在最近的 Outlook 版本中可能有更精简的方式——这是已经使用了很长时间的漫长而粗糙的方式(这些天我什至没有方便的 Windows 安装来检查它并编写 Python为你...!-)
关于python - 在 python 的 Windows 上,可能使用 Outlook API,如何从用户的较小登录名获取用户的全名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720077/