【问题标题】:how to get attributes from win32com.client.dispatch("Shell.Application")如何从 win32com.client.dispatch("Shell.Application") 获取属性
【发布时间】:2012-01-31 15:14:15
【问题描述】:

我正在尝试通过 python 以编程方式控制我的设备管理器(即禁用和重新启用设备)。但是,我无法弄清楚“win32com.client.Dispatch("Shell.Application")”的命名空间中的属性是什么。我所知道的就是获取名称并打印出来。我对代码进行了调试,但找不到任何有用的东西。

这是我目前所拥有的

    import win32com.client
    shell = win32com.client.Dispatch("Shell.Application")
    control_panel = shell.Namespace(3)
    for item in control_panel.Items():
        if item.Name == "Device Manager":
            print item
            break

这也不是很有用:

 control_panel.GetNamespace("MAPI")
 Traceback (most recent call last):
   File "<interactive input>", line 1, in <module>
   File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 516, in __getattr__
raise AttributeError("%s.%s" % (self._username_, attr))
 AttributeError: <unknown>.GetNamespace

【问题讨论】:

    标签: python windows-7 win32com


    【解决方案1】:

    检查 COM 对象中属性的一种方法是使用 python 站点包文件夹中 win32com\client 上可用的 combrowse.py

    只需运行脚本(双击或从命令行/python),就会出现一个包含所有可用 com 对象的窗口。在Registered Type Libraries 下,您应该在Microsoft Shell Controls And Automation 的对应库下找到Shell
    您可以在 python 中使用以下命令进行检查:

    from win32com.client import gencache
    shell = gencache.EnsureDispatch('Shell.Application')
    print shell
    

    此外,使用gencache 方法,您可以使用Tab 来检查一些可用的方法,但要查看完整列表,请检查combrowse.py。唯一的问题是combrowse.py 中列出的一些方法在 python 中并不真正可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 2013-11-21
      • 2014-03-02
      • 2019-09-28
      • 2015-01-27
      相关资源
      最近更新 更多