急:获得机器内存条个数、每条内存的实际容量(windows操作系统)!!!

jky820110 2008-10-30 09:41:07
小弟:现在遇到一个问题,不知道如何编程实现获得机器内存条的个数,以及每条内存的容量等信息。
...全文
300 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cobycarry 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jky820110 的回复:]
to:yxz_lp

wmi的方式我已经实现了,现在需要用api的方式实现。

非常感谢你的回复。
[/Quote]

可以告诉我吗?谢谢 cobycarry@126.com
superjky 2008-11-13
  • 打赏
  • 举报
回复
1、在NT/2K/XP中,我们还可以通过用户模式访问 \Device\PhysicalMemory 对象,通过系统核心文件NTDLL.DLL中的有关API进行操纵,从而实现物理内存的直接访问。通过解析内存数据表结构可以实现所说的功能。

2、2003 sp1 以后的版本中,可以调用GetSystemFirmwareTable实现。

3、wmi方式获取。可以通过读取ROOT\\WMI命名空间下的,MSSMBios_RawSMBiosTables获得要的数据。

相关SMBIOS的更多信息,用google或baidu查找。

………………微软建议使用wmi方式获取相关信息。
vcPlayer 2008-10-30
  • 打赏
  • 举报
回复
还没遇到过,帮顶。不过驱动层肯定能行。
jky820110 2008-10-30
  • 打赏
  • 举报
回复
to:yxz_lp

wmi的方式我已经实现了,现在需要用api的方式实现。

非常感谢你的回复。
jky820110 2008-10-30
  • 打赏
  • 举报
回复
谢谢4楼的,我正在看这个。
yxz_lp 2008-10-30
  • 打赏
  • 举报
回复
应该可以用WMI实现,具体可参考MSDN的Example: Getting WMI Data From the Local Computer
hres = pSvc->ExecQuery(
bstr_t("WQL"),
bstr_t("SELECT * FROM Win32_MemoryDevice"),//可替换成,如Win32_OperatingSystem你要的
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);

hr = pclsObj->Get(L"Name", 0, &vtProp, 0, 0);//可获得你要的属性,如Caption等
pleasechangegreat 2008-10-30
  • 打赏
  • 举报
回复
我最近也在关注这方面的信息,给你个参考http://www.codeproject.com/KB/system/SimpleSetup.aspx
jky820110 2008-10-30
  • 打赏
  • 举报
回复
请高手指点一下。
pleasechangegreat 2008-10-30
  • 打赏
  • 举报
回复
兄弟,我现在也在寻类似的信息,给你个参考http://www.codeproject.com/KB/system/SimpleSetup.aspx
sanshao27 2008-10-30
  • 打赏
  • 举报
回复
sf
jky820110 2008-10-30
  • 打赏
  • 举报
回复
没有人会吗? 自己顶一个

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧