有没有一种特定的方法可以用windowsapi访问“任务管理器”信息?我对这件事做了相当多的搜索,但似乎找不到一个API调用可以告诉我:
- 给定进程的CPU/RAM使用率
- 使用CPU/RAM最多的进程
有没有一种方法可以通过Python或C++访问这些信息(基本上,通过Windows API)?在
以下是我要做的(在伪代码中):
app x = winapi.most_intensive_process
app y = winapi.most_RAM_usage
print x.name
print y.name
Tags:
您可以使用PSAPI函数检索有关RAM使用情况的信息,尤其是^{} 来查找系统中的所有进程,而{a2}则可以获取有关每个进程内存使用情况的信息。在
可以使用^{} 检索每个进程的CPU使用情况。这并不总是完全准确,但我相信任务管理器在相同的情况下会以同样的方式产生不准确的结果。在
如果您需要,可以通过^{} 获得整个系统内存使用情况的信息。在
可以使用以下Windows API在C/C++程序中检索各种进程计数器。在
它检索有关指定进程的内存使用情况的信息。在
在MSDN上有一个完整的示例,它解释了如何使用MSDN为您的进程检索此类信息。在
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682050%28v=vs.85%29.aspx
您已经提到,您希望连续获取信息(与任务管理器一样有一定的时间间隔)。要实现这一点,您可能需要在函数中写入完整的逻辑(在MSDN中提到),并在一段时间延迟(Sleep(1second))后调用它。这样,您应该能够获取程序的所有这些信息,直到它执行为止。在
您可以使用^{} 库,而不是直接调用windowsapi,它是一个跨平台的库,提供有关进程的大量信息。
它可以在Windows、Linux、macos、BSD和sunsolaris上运行,并可以在python 2.4到3.4之间以32位和64位的方式工作。在
尤其是它的^{} 类有以下有趣的方法:
taskmgr.exe
所显示的,因此它看起来正是您想要的。在要遍历所有进程(例如,为了找到最需要CPU/内存的进程),可以只迭代^{} 。在
以下是您想要实现的简单实现:
在我的系统上运行的示例:
^{pr2}$相关问题 更多 >
编程相关推荐