如何抓取物理内存的制造商(Kingston)、类型(DDR2)、频率(800)、出厂日期(1周/2009年)、
容量(1024M)、序列号(76720444)、插槽(DIMM0)等信息?

解决方案 »

  1.   

    BIOS 好像都没这功能。帮你顶了!
      

  2.   

    用api得到你想要的,搜一下有很多,举例如何取得磁盘序列号?
    Declare Function GetVolumeInformation Lib "kernel32" _
      Alias "GetVolumeInformationA" _
      (ByVal lpRootPathName As String, _
      ByVal lpVolumeNameBuffer As String, _
      ByVal nVolumeNameSize As Long, _
      lpVolumeSerialNumber As Long, _
      lpMaximumComponentLength As Long, _
      lpFileSystemFlags As Long, _
      ByVal lpFileSystemNameBuffer As String, _
      ByVal nFileSystemNameSize As Long) As Long程序:Private Sub Form_Load()
      Dim sDriveLetter As String 
      Dim RetVal As Long 
      Dim lpName As String 
      Dim nSize As Long 
      Dim nSerial As Long 
      Dim lpMaxComp As Long 
      Dim nFileFlags As Long 
      Dim lpFileName As String 
      lpName = Space(255)
      lpFileName = Space(255)
      nSize = 255  sDriveLetter = "c:\" ’这里你可以指定任何盘号  RetVal = GetVolumeInformation(sDriveLetter, lpName, _
       nSize, nSerial, lpMaxComp, nFileFlags, lpFileName, nSize)
      '你可以看出,不仅能得到序列号,还可以得到其他很多信息  If RetVal = 0 Then 
        '这里是你的错误处理代码
        Exit Sub 'Quit the subroutine
      Else 
        lblDriveSerial.Caption = CStr(nSerial) 
        '假定你已经建立了这个标签,将在标签上显示序列号.
      End If
    End Sub
      

  3.   

    这可能需要读取SPD,你可以搜索一下如何读取SPD信息。
      

  4.   

    VB读取内存SPD信息的程序几乎没有。下面是VC++的:
    VC++读取内存SPD信息
    http://blog.csdn.net/liwu_111/archive/2008/04/09/2269554.aspx
      

  5.   

    看看下面这个例子里面有没有你想要的东西
    http://www.applevb.com/sourcecode/wmi.rar
      

  6.   

    只用API抓过容量。。
    其他在当时需求中不要求。。
      

  7.   

    试验了一下,能获取部分,但没那么完全。下面代码列出部分属性。不想把所有属性列出来了。需要的话把变量m扔到跟踪里面去看“Properties_”成员Set wmi = GetObject("winmgmts:\\")
    Set mem = wmi.instancesof("win32_physicalmemory")
    'msg=msg&"内存容量:"+Chr(13)
    For Each m In mem
        Debug.Print m.Tag
            Debug.Print vbTab & "banklabel" & vbTab; m.banklabel
            Debug.Print vbTab & "Capacity" & vbTab; m.Capacity
            Debug.Print vbTab & "DataWidth" & vbTab; m.DataWidth
            Debug.Print vbTab & "DeviceLocator" & vbTab; m.DeviceLocator
            Debug.Print vbTab & "Speed" & vbTab; m.Speed
            Debug.Print vbTab & "SerialNumber" & vbTab; m.SerialNumber
            Debug.Print vbTab & "InstallDate" & vbTab; m.InstallDate
            Debug.Print vbTab & "TypeDetail" & vbTab; m.TypeDetail
    Next
      

  8.   

    WMI不行,没有厂商、类型等信息,最让人受不了的是,有些机器明明插了2条内存,win32_physicalmemory只能检测到一条。这样的机器也不多,大概十分之一左右吧。
      

  9.   

    用asm或C写一个驱动读写SPD然后导出函数让VB调用
      

  10.   

    读取系统硬件信息一般都是用WMI,但貌似没有关于内存的。