VC++怎么得到内存的序列号?不用WMI接口。

边学边用边创造 2012-02-20 02:18:59
VC++怎么得到内存的序列号?不用WMI接口。

...全文
441 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzg 2013-11-19
  • 打赏
  • 举报
回复
同求一份完整代码,谢谢了
qingye2008 2012-11-16
  • 打赏
  • 举报
回复
擦...代码呢???咋不分享一下....
kdzx121 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
已经发到你的邮箱了.参考一下.
[/Quote]
同求一份完整代码,谢谢了
AthlonXP1800plus 2012-02-23
  • 打赏
  • 举报
回复
已经发到你的邮箱了.参考一下.
  • 打赏
  • 举报
回复
ytf1978@163.com
AthlonXP1800plus 2012-02-20
  • 打赏
  • 举报
回复
你留个邮箱,我发你一个完整代码吧。
  • 打赏
  • 举报
回复
to wyx100
怎么读?
wyx100 2012-02-20
  • 打赏
  • 举报
回复
用WINIO.读smbus.
  • 打赏
  • 举报
回复
CString CReadSpd::SPD_BYTE5F(DWORD base,BYTE DEVID)函数的两个参数分别是什么?
AthlonXP1800plus 2012-02-20
  • 打赏
  • 举报
回复
BOOL CReadSpd::WaitReady(DWORD base)
{
DWORD STATUS;
DWORD errnum = 0;
do{
GetPortVal(base, &STATUS,1);
errnum++;
if(errnum >0x800)
return FALSE;
}while((STATUS&0x01)!=0);
return TRUE;
}

BYTE CReadSpd::ReadSPD(DWORD base,BYTE offset,BYTE DEVID)
{
DWORD RetVal=0;
SetPortVal(base,0x0fe,1);
//output Base+04, (DeviceID+1)
SetPortVal(base+0x04,DEVID+1,1);
//out Base+03, offset
SetPortVal(base+0x03,offset,1);
//out Base+02, 48H
SetPortVal(base+0x02,0x48,1);

//DelayUs(200*1000);//wait 200ms
DelayUs(10*1000);
//wait smbus ready
if(WaitReady(base))
{//input base+05
GetPortVal(base+0x05,&RetVal,1);
}
return (BYTE)RetVal;
}

//Byte95-98 Serial Number
CString CReadSpd::SPD_BYTE5F(DWORD base,BYTE DEVID)
{
BYTE RetVal[4];
BYTE i;
CString val = "";
for(i=0; i<0x04; i++)
RetVal[i] = 0x00;
for(i=0x5F;i<=0x62;i++)
RetVal[i-0x5F]=ReadSPD(base,i,DEVID);

val.Format("%2x%2x%2x%2x",RetVal[0],RetVal[1],RetVal[2],RetVal[3]);
val.Replace(" ","0");
val.MakeUpper();
if(val == "00000000" || val == "FFFFFFFF")
val = "";
return val;
}
参考一下上面的代码.
WINIO的使用资料你自己找一下.
GetPortVal
SetPortVal
是WINIO中的函数.
不过不同主板读写的方式有些小差别,你可以查找相关资料.

AthlonXP1800plus 2012-02-20
  • 打赏
  • 举报
回复
适用WINIO.读smbus.

2,641

社区成员

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

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