导入 ctypes.windll.shell32.IsUserAnAdmin 给出 ImportError

Importing ctypes.windll.shell32.IsUserAnAdmin gives ImportError

这个问题真的很愚蠢,抱歉 - 这是我在 Python 的第一天。

我想像这样导入 'IsUserAnAdmin' 函数:

from ctypes.windll.shell32 import IsUserAnAdmin

我显然做错了什么,因为我得到:

ImportError: No module named 'ctypes.windll'

当我导入整个 'ctypes' 时一切正常,但我真的不想这样做,因为我宁愿使用以下函数调用函数:

IsUserAnAdmin() 

...比:

ctypes.windll.shell32.IsUserAnAdmin()

有人能告诉我应该如何导入此函数来执行此操作吗?

提前致谢:)

windll 是一个 LibraryLoader 对象而不是 module。如果您阅读 docs,您会注意到导入完成为:

>>> from ctypes import *
>>> print windll.Shell32.IsUserAnAdmin()
0

windll = LibraryLoader(WinDLL) 其中 WinDLL 是一个 class 其文档为:

This class represents a dll exporting functions using the Windows stdcall calling convention.

所以你可以这样做:

>>> IsUserAnAdmin = WinDLL('Shell32').IsUserAnAdmin
>>> IsUserAnAdmin()
0