Как следить за изменением LoadPercentage в Win32_Processor в wmi? - PullRequest
1 голос
/ 22 февраля 2011

Как отслеживать событие изменения LoadPercentage с помощью класса Win32_Processor?

import wmi
c= wmi.WMI()
x = [cpu.LoadPercentage for cpu in c.Win32_Processor()]

Где должен применяться метод watch for (), чтобы я мог знать, упало ли использование процессора до менее 80%?

Спасибо. Сива

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Я не уверен, что вы подразумеваете под методом for (), но вы можете просто поместить это в цикл:

kMaxLoad = 80
while True:
    x = [cpu.LoadPercentage for cpu in c.Win32_Processor()]
    if max(x) < kMaxLoad:
        break
print "okay, load is under %i" % kMaxLoad
1 голос
/ 22 февраля 2011

Я не использую эту библиотеку, но вот пример запроса:

from win32com.client import Moniker

wmi = Moniker('winmgmts:')
events = wmi.ExecNotificationQuery("Select * From __InstanceModificationEvent "
                                   "Within 1 "
                                   "Where TargetInstance Isa 'Win32_Processor' "
                                   "And TargetInstance.LoadPercentage > 10")

processor = events.NextEvent().TargetInstance

print processor.LoadPercentage

Вы также можете попробовать использовать один из классов WMI perf вместо Win32_Processor.

...