2010-03-21 72 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