获取我的 RAM 的制造商名称(WMI 没有获得此信息)

Posted

技术标签:

【中文标题】获取我的 RAM 的制造商名称(WMI 没有获得此信息)【英文标题】:Get Manufacturer name for my RAM (WMI didn't get this information) 【发布时间】:2017-04-24 03:47:54 【问题描述】:

我需要获取有关 RAM 模块的完整信息。我试图通过使用 WMI 来获得它:

ManagementObjectSearcher searcher12 =
    new ManagementObjectSearcher("root\\CIMV2",
    "SELECT * FROM Win32_PhysicalMemory");

            Console.WriteLine("------------- Win32_PhysicalMemory instance --------");
            foreach (ManagementObject queryObj in searcher12.Get())
            
                Console.WriteLine("BankLabel: 0 ; Capacity: 1 Gb; Speed: 2; Manufacturer: 3; Serial Number: 4", queryObj["BankLabel"],
                                  Math.Round(System.Convert.ToDouble(queryObj["Capacity"]) / 1024 / 1024 / 1024, 2),
                                   queryObj["Speed"], queryObj["Manufacturer"], queryObj["Name"]);
            

但它对我没有帮助,它根本没有这些信息。我怎样才能得到这些信息?

【问题讨论】:

这段代码对我有用,或者至少queryObj["Manufacturer"] 中有一个值(虽然只是一个十六进制字符串)。您在该条目中得到什么结果? 它只显示一个空格:screenshot.su/img/64/b7/b1/64b7b10e92478a5dbdd25a6586d99d60.jpg 您的机器制造商需要提供使该查询工作的底层芯片组驱动程序。他们做得好的几率大致与您为此付出的代价成正比。 您的问题已在此处得到解答***.com/a/70221789/4483395 【参考方案1】:

以上代码适用于 Windows 10。我将以上代码复制并粘贴到控制台应用程序中。

我必须添加对 System.Management 的引用。

当我运行它时,我得到以下输出:

------------- Win32_PhysicalMemory instance --------
BankLabel: BANK 0 ; Capacity: 4 Gb; Speed: 1333; Manufacturer: Hynix; Serial Number: Physical Memory
BankLabel: BANK 1 ; Capacity: 4 Gb; Speed: 1333; Manufacturer: Unknown; Serial Number: Physical Memory

【讨论】:

【参考方案2】:

您可以使用以下代码:

using System.Management;

ObjectQuery wql = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wql);
ManagementObjectCollection results = searcher.Get();

foreach (ManagementObject result in results)

    Console.WriteLine("Total Visible Memory: 0 KB", result["TotalVisibleMemorySize"]);
    Console.WriteLine("Free Physical Memory: 0 KB", result["FreePhysicalMemory"]);
    Console.WriteLine("Total Virtual Memory: 0 KB", result["TotalVirtualMemorySize"]);
    Console.WriteLine("Free Virtual Memory: 0 KB", result["FreeVirtualMemory"]);


输出是:

Total Visible Memory: 16617056 KB
Free Physical Memory: 2465396 KB
Total Virtual Memory: 35511496 KB
Free Virtual Memory: 4005632 KB

【讨论】:

以上是关于获取我的 RAM 的制造商名称(WMI 没有获得此信息)的主要内容,如果未能解决你的问题,请参考以下文章

在没有 WMI 的情况下获取电池信息

如何获取 USB 设备的驱动器号?

WMI Win32_BaseBoard 序列号

如何区分 C# 4.0 中的硬盘型号

在不使用 WMI 的情况下访问主板信息

WMI 如何获取 ProcessorId?