Импорт ctypes.windll.shell32.IsUserAnAdmin дает ImportError
Действительно глупый вопрос здесь, извините - это мой первый день в Python.
Я хочу импортировать функцию IsUserAnAdmin следующим образом:
from ctypes.windll.shell32 import IsUserAnAdmin
Я явно делаю что-то не так, потому что получаю:
ImportError: нет модуля с именем 'ctypes.windll'
Все отлично работает, когда я импортирую весь "ctypes", но я не хочу этого делать, так как я бы скорее вызвал функцию с помощью:
IsUserAnAdmin()
... чем:
ctypes.windll.shell32.IsUserAnAdmin()
Может кто-нибудь сказать мне, как я должен импортировать эту функцию, чтобы сделать это?
Заранее спасибо:)
1 ответ
windll
это LibraryLoader
объект не module
, Если вы прочитаете документы, вы заметите, что импорт был выполнен как:
>>> from ctypes import *
>>> print windll.Shell32.IsUserAnAdmin()
0
windll = LibraryLoader(WinDLL)
где WinDLL
это класс, чей документ гласит:
Этот класс представляет функции экспорта dll с использованием соглашения о вызовах Windows stdcall.
Так что вы можете сделать:
>>> IsUserAnAdmin = WinDLL('Shell32').IsUserAnAdmin
>>> IsUserAnAdmin()
0