导入ctypes.windll.shell32.IsUserAnAdmin会导致ImportError

时间:2016-06-03 14:29:43

标签: python python-3.x import ctypes python-import

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

我想导入' IsUserAnAdmin'功能如下:

<?= $form->field($model, 'Data_entrada')->widget(
    DatePicker::className(), [
        // inline too, not bad
        'language' => 'pt',
        'inline' => false, 
        'options' => ['placeholder' => 'Escolha a data de entrada ...'],
         // modify template for custom rendering
        //'template' => '<div class="well well-sm" style="background-   color: #fff; width:250px">{input}</div>',
    'clientOptions' => [
        'autoclose' => true,
        'todayHighlight' => true,
            'format' => 'yyyy-mm-dd'
        ]
]);?>

我明显做错了,因为我得到了:

  

ImportError:没有名为&#39; ctypes.windll&#39;

的模块

当我导入整个“ctypes”时,一切正常,但我并不是真的想这样做,因为我宁愿用以下方法调用该函数:

from ctypes.windll.shell32 import IsUserAnAdmin

...比:

IsUserAnAdmin() 

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

提前致谢:)

1 个答案:

答案 0 :(得分:2)

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

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

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

的类
  

此类表示使用的dll导出函数   Windows stdcall调用约定。

所以你可以这样做:

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