C# 如何在windows 8及以上版本中获得RAM速度

C# 如何在windows 8及以上版本中获得RAM速度,c#,.net,vb.net,performance,hardware,C#,.net,Vb.net,Performance,Hardware,我当前正在windows 8.1中使用WMI管理对象: Dim Mos = New ManagementObjectSearcher("SELECT speed FROM Win32_PhysicalMemory") Dim _Speed For Each objMgmt In Mos.Get _Speed = objMgmt("speed") Next 但它什么也没表现出来。因为DDR3中有各种不同的ram速度。我想知道我的电脑或笔记本电脑中的ram是否正常 DDR3 1033 D

我当前正在windows 8.1中使用WMI管理对象:

Dim Mos = New ManagementObjectSearcher("SELECT speed FROM Win32_PhysicalMemory")
Dim _Speed
For Each objMgmt In Mos.Get
    _Speed = objMgmt("speed")
Next
但它什么也没表现出来。因为DDR3中有各种不同的ram速度。我想知道我的电脑或笔记本电脑中的ram是否正常

DDR3 1033 
DDR3 1333 
DDR3 1600 
DDR3 1800
在Windows8及以上版本中,是否有其他代码可以获得ram的速度

我会使用WMI

On Error Resume Next 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "            {impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery("Select * from     Win32_PhysicalMemory") 
For Each objItem in colItems 

Wscript.Echo "Bank Label: " & objItem.BankLabel 
Wscript.Echo "Capacity: " & objItem.Capacity 
Wscript.Echo "Data Width: " & objItem.DataWidth 
Wscript.Echo "Description: " & objItem.Description 
Wscript.Echo "Device Locator: " & objItem.DeviceLocator 
Wscript.Echo "Form Factor: " & objItem.FormFactor 
Wscript.Echo "Hot Swappable: " & objItem.HotSwappable 
Wscript.Echo "Manufacturer: " & objItem.Manufacturer 
Wscript.Echo "Memory Type: " & objItem.MemoryType 
Wscript.Echo "Name: " & objItem.Name 
Wscript.Echo "Part Number: " & objItem.PartNumber 
Wscript.Echo "Position In Row: " & objItem.PositionInRow 
Wscript.Echo "Speed: " & objItem.Speed 
Wscript.Echo "Tag: " & objItem.Tag 
Wscript.Echo "Type Detail: " & objItem.TypeDetail 

Next 

(基于)

是的,有另一种方法可以实现这一点,使用相同的WMI,但这是一种不同的方法,适用于我的两台计算机windows 8和windows 10

1.请记住按如下所示放置
Imports System.Management
,否则代码将无法运行。 2.请在form1中创建名为
textbox1
textbox

Imports System.Management 

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim proc_query As String = "SELECT * FROM Win32_PhysicalMemory"
        Dim proc_searcher As New ManagementObjectSearcher(proc_query)
        For Each info As ManagementObject In proc_searcher.Get()
            textbox1.Text = "Speed of Your RAM is  " & info.Properties("Speed").Value.ToString()
        Next info


    End Sub
End Class

如果这是一个解决方案,请选择此答案作为已接受:),如果您仍然无法使其工作,我将尝试提供帮助,只需在下面进行评论:)

不,它不工作。在速度上显示空白。你自己试试看。我试过在windows8和windows8.1中运行,我也试过以管理员身份运行,但它只显示空白速度。@ErMayank,那是你的问题。对我有用。@ErMayank也一样,请包含更多代码。问题可能与您包含的行无关。OP没有要求脚本。这显然不是
vb.net
,发布OP正在使用的解决方案之外的解决方案是不相关的。你也说过要使用WMI,OP已经在使用WMI了。你的帖子显然没有提到这个问题。它应该一起删除,因为它缺少细节。也许在抛出代码之前,一条提问的评论就足够了,这是一个明智的选择?另外,复制另一个答案,并张贴它是正确的,你也可以作出评论与建议的链接。我已经这样做了。但它不起作用。速度为空或空白。您是否在Windows 8.1中尝试过该代码?