导入 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
这个问题真的很愚蠢,抱歉 - 这是我在 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