Windows下获取系统信息(CPU速度-总内存-显卡型号等)

Posted

技术标签:

【中文标题】Windows下获取系统信息(CPU速度-总内存-显卡型号等)【英文标题】:Get system information(CPU speed-Total RAM-Graphic Card model etc.) under Windows 【发布时间】:2016-06-29 15:15:24 【问题描述】:

我搜索了很多,但找不到任何有用的东西。这是否可以获取系统信息,例如;

CPU: Intel Core i7-3770K CPU @3.5Ghz
RAM: 8GB
Graphic Card: NVIDIA GeForce GTX 680

在 Windows 下?我怎样才能达到这个输出?

编辑:platform.processor() 没有给出我想要的输出。所以这对我来说没用。

【问题讨论】:

不是一个完整的答案,但以防万一——Discussion on this topic 在底部附近有一个帖子,其中包含一些在 linux 上使用 dbus 的示例代码。 This git repo 有关于为 Windows 设置 dbus 的信息。也许将两者与一些肘部油脂结合起来,您可能会有所收获 【参考方案1】:

我一直想知道如何自己做这件事,所以我挖了一点,并使用wmi(需要pywin32)提出了这个解决方案。 当然不用说,这只适用于 Windows 机器(并且问题带有Windows 标签)。

import wmi

computer = wmi.WMI()
computer_info = computer.Win32_ComputerSystem()[0]
os_info = computer.Win32_OperatingSystem()[0]
proc_info = computer.Win32_Processor()[0]
gpu_info = computer.Win32_VideoController()[0]

os_name = os_info.Name.encode('utf-8').split(b'|')[0]
os_version = ' '.join([os_info.Version, os_info.BuildNumber])
system_ram = float(os_info.TotalVisibleMemorySize) / 1048576  # KB to GB

print('OS Name: 0'.format(os_name))
print('OS Version: 0'.format(os_version))
print('CPU: 0'.format(proc_info.Name))
print('RAM: 0 GB'.format(system_ram))
print('Graphics Card: 0'.format(gpu_info.Name))

输出示例:

OS Name: Microsoft Windows 7 Ultimate 
OS Version: 6.1.7601 7601
CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
RAM: 15.9443855286 GB
Graphics Card: NVIDIA GeForce GTX 960

您可以通过pip 安装这两个所需的软件包:

pip install --upgrade wmi
pip install --upgrade pypiwin32

要查看您可以在各种 Win32 控制器类中访问哪些其他变量,请查看此文档:

Win32_ComputerSystem Win32_OperatingSystem Win32_Processor Win32_VideoController

在 SO 上找到相关答案:https://***.com/a/11785020/295246


更新:对于系统 RAM,您可以使用 os_info.TotalVisibleMemorySize(以千字节为单位返回值)或 computer_info.TotalPhysicalMemory(以字节为单位返回值)。如果您使用后者,您可以使用hurry.filesize 将其快速转换为人类可读的字符串。

例如:

from hurry.filesize import size
...
size(int(computer_info.TotalPhysicalMemory))

在我的情况下输出:15G 您甚至可以将 G 修改为您想要的任何其他内容。有关更多信息,请参阅此 SO 答案:https://***.com/a/5194348/295246

【讨论】:

好吧,至少我得到了我想要的 ram 和 cpu。谢谢你的回答! @Nels Carlson 看,这是给出正确答案的方法。 @GLHF GPU 信息也在那里。我错过了你的问题吗? 哦,是的,对不起,我错过了。这是我一直在寻找的答案。再次感谢您。

以上是关于Windows下获取系统信息(CPU速度-总内存-显卡型号等)的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何在windows下获取计算机的cpu和内存

windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息

windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息

请问怎么用c语言获取电脑(windows)的cpu,内存,硬盘利用率等信息?Linux系统一样吗?

ubuntu 14.04 系统配置磁盘,CPU,内存,硬盘信息查看

如何在没有 exec 的情况下获取 CPU 使用率和 RAM 使用率?