我试图通过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
答案 0 :(得分:6)
检查COM对象中的属性的一种方法是使用python site-packages文件夹中combrowse.py
上的win32com\client
只需运行脚本(双击或从命令行/ 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中并不真正可用。