python 如何观察wmi中Win32_Processor LoadPercentage的变化?

发布于 2024-10-18 17:14:05 字数 231 浏览 6 评论 0原文

如何使用 Win32_Processor 类监视 LoadPercentage 更改事件?

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

应该在哪里应用 watch for() 方法,以便我知道 CPU 使用率是否已降至 80% 以下?

谢谢。 湿婆

How do I watch for a LoadPercentage change event using the Win32_Processor class?

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

Where should the watch for() method be applied so that I can know if the CPU usage has dropped to less than say 80%?

Thanks.
Siva

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情绪失控 2024-10-25 17:14:05

我不确定 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

I'm not sure what you mean by for() method, but you can just put that in a loop:

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
悲欢浪云 2024-10-25 17:14:05

我不使用该库,但这里有一个示例查询:

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

您还可以尝试使用 perf WMI 类之一而不是 Win32_Processor。

I don't use that library, but here is an example query:

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

You could also try to use one of the perf WMI classes instead of Win32_Processor.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文