2010-03-21 95 views
1

我有一个IronPython脚本,它使用WMI查找当前正在运行的进程。代码如下所示:使用IronPython中的ManagementClass.Getinstances()

import clr 
clr.AddReference('System.Management') 
from System.Management import ManagementClass 
from System import Array 
mc = ManagementClass('Win32_Processes') 
procs = mc.GetInstances() 

最后一行,我叫GetInstances()方法引发了以下错误:

Traceback (most recent call first): 
    File "<stdin>", line 1, in <module> 
SystemError: Not Found 

什么不被人发现我不理解?!?我相信我可能需要将ManagementOperationObserverEnumerationOptions的实例传递给GetInstance()但是,我不明白这是为什么,因为带有签名Getinstance()的方法在ManagementClass中可用。

回答

1

我认为唯一的问题是'Win32_Processes'是'Win32_Process'的拼写错误。这似乎工作:

>>> mc = ManagementClass('Win32_Process') 
>>> procs = mc.GetInstances() 
>>> for p in procs: 
...  print p['Name'] 
... 
System Idle Process 
System 
smss.exe 
(etc) 
+0

你是绝对正确的!没有Win32_Processes ...现在可以使用... – 2010-03-22 00:04:52