如何将CPU的温度、风扇的转数测试出来?(200分)

  • 主题发起人 xuyaozhou
  • 开始时间
X

xuyaozhou

Unregistered / Unconfirmed
GUEST, unregistred user!
<br>不知如何把CPU的温度、风扇的转数测试出来?<br>&nbsp; &nbsp; 首先,谢谢大家了!
 
读取BIOS的信息
 
不太了解。。。<br>不过,估计可以从BIOS或者是注册表中读出吧!
 
CPU的温度、风扇的转数这些东东是根据你电脑的使用情况实时得出的,<br>你怎么能够监控呢???
 
是不是可以实时读取BIOS中的CPU温度和风扇的转速呢?
 
监测温度需要感应器支持。一般是在感应器探测到正确的温度以后,将信号反馈给系统监控芯片,<br>然后再通过系统监控软件将温度反映出来。现在很多都集成在主板中。
 
下面这段代码可以试试!<br>&nbsp;type<br>&nbsp; &nbsp; TBus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = (ISA, SMBus, VIA686ABus, DirectIO);<br>&nbsp; &nbsp; TSMB &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = (SMBIntel, SMBAMD, SMBALi);<br>&nbsp; type<br>&nbsp; &nbsp; TSharedData = Record<br>&nbsp; &nbsp; &nbsp; STemperature &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Integer; &nbsp;<br>&nbsp; &nbsp; &nbsp; SVoltage &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; SFan &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Integer; &nbsp; <br>&nbsp; &nbsp; &nbsp; SMHZ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : Integer; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; SNrCPU &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : Byte; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCPUUsage &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..4] &nbsp; &nbsp; of Real; &nbsp; &nbsp;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; TSharedInfo = Record<br>&nbsp; &nbsp; &nbsp; SMBM_Version &nbsp; &nbsp; &nbsp; : array [0..10] &nbsp;of Char; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SSMB_Base &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Word; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SSMB_Type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: TBus; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SSMB_Code &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: TSMB; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SSMB_Addr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Byte; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SSMB_Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [0..40] &nbsp;of Char; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SISA_Base &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Word; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SChipType &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; SVoltageSubType &nbsp; &nbsp;: Byte; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; TSharedHL = Record &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; STempC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of LongInt; &nbsp; <br>&nbsp; &nbsp; &nbsp; STempA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Extended; &nbsp;<br>&nbsp; &nbsp; &nbsp; STempL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; STempH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SVoltC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of LongInt; &nbsp; <br>&nbsp; &nbsp; &nbsp; SVoltA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Extended; &nbsp;<br>&nbsp; &nbsp; &nbsp; SVoltL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SVoltH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SFanC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..10] &nbsp;of LongInt; &nbsp; <br>&nbsp; &nbsp; &nbsp; SFanA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..10] &nbsp;of Extended; &nbsp;<br>&nbsp; &nbsp; &nbsp; SFanL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SFanH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..10] &nbsp;of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SStart &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [0..40] &nbsp;of Char; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCurrent &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [0..40] &nbsp;of Char; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCPUC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..4] &nbsp; of LongInt; &nbsp; <br>&nbsp; &nbsp; &nbsp; SCPUA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..4] &nbsp; of Extended; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCPUL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..4] &nbsp; of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCPUH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array [1..4] &nbsp; of Real; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; TSharedName = Record<br>&nbsp; &nbsp; &nbsp; STempName &nbsp; &nbsp; &nbsp; : array [1..10] of array [0..10] of Char; &nbsp;<br>&nbsp; &nbsp; &nbsp; SVoltName &nbsp; &nbsp; &nbsp; : array [1..10] of array [0..10] of Char; &nbsp;<br>&nbsp; &nbsp; &nbsp; SFanName &nbsp; &nbsp; &nbsp; &nbsp;: array [1..10] of array [0..10] of Char; &nbsp;<br>&nbsp; &nbsp; &nbsp; SCPUName &nbsp; &nbsp; &nbsp; &nbsp;: array [0..10] of Char; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; SCPUUSageName &nbsp; : array [0..10] of Char; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; end;<br>&nbsp; PSharedData = ^TSharedData;<br>&nbsp; PSharedInfo = ^TSharedInfo;<br>&nbsp; PSharedHL &nbsp; = ^TSharedHL;<br>&nbsp; PSharedName = ^TSharedName;<br>var<br>&nbsp; CPUMhz &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer;<br>&nbsp; CPUNr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : Byte;<br>&nbsp; Temperature &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Integer<br>&nbsp; Voltage &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Real;<br>&nbsp; Fan &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..10] &nbsp;of Integer;<br>&nbsp; CPU &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array [1..4] &nbsp; of Real;<br>&nbsp; UsedBus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : TBus;<br>&nbsp; IsaBase &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : Word;<br>&nbsp; SMB_BASE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Word;<br>&nbsp; SMBusType &nbsp; &nbsp; &nbsp; &nbsp; : TSMB;<br>&nbsp; SMB_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: String;<br>&nbsp; SMBChipAddress &nbsp; &nbsp;: Byte;<br>&nbsp; ChipType &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer;<br>&nbsp; TempL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Real;<br>&nbsp; TempH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Real;<br>&nbsp; TempA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Extended;<br>&nbsp; TempC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of LongInt;<br>&nbsp; VoltL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Real;<br>&nbsp; VoltH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Real;<br>&nbsp; VoltA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of Extended;<br>&nbsp; VoltC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of LongInt;<br>&nbsp; FanL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of Real;<br>&nbsp; FanH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of Real;<br>&nbsp; FanA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of Extended;<br>&nbsp; FanC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of LongInt;<br>&nbsp; StartingTimeLog &nbsp; : String;<br>&nbsp; CurrentTimeLog &nbsp; &nbsp;: String;<br>&nbsp; CPUL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..4] &nbsp;of Real;<br>&nbsp; CPUH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..4] &nbsp;of Real;<br>&nbsp; CPUA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..4] &nbsp;of Extended;<br>&nbsp; CPUC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..4] &nbsp;of LongInt; &nbsp;<br>&nbsp; TempName &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of String;<br>&nbsp; VoltName &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: array[1..10] of String;<br>&nbsp; FanName &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : array[1..10] of String;<br>&nbsp; CPUName &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : String;<br>&nbsp; CPUUsageName &nbsp; &nbsp; &nbsp;: String;<br>function ReadSharedData : Boolean;<br>function ReadSharedInfo : Boolean;<br>function ReadSharedHL &nbsp; : Boolean;<br>function ReadSharedName : Boolean;<br>implementation<br>function ReadSharedData : Boolean;<br>var<br>&nbsp; PSH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: PSharedData;<br>&nbsp; hSData &nbsp; &nbsp; &nbsp; : Integer;<br>&nbsp; X &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer;<br>begin<br>&nbsp; Result:=False;<br>&nbsp; hSData:=OpenFileMapping(FILE_MAP_READ, False, '$M$B$M$5$D$');<br>&nbsp; if hSData=0 then Exit;<br>&nbsp; PSH:=MapViewOfFile(hSData, FILE_MAP_READ, 0, 0, 0);<br>&nbsp; if PSH=Nil then<br>&nbsp; begin<br>&nbsp; &nbsp; CloseHandle(hSData);<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; with PSH^ do<br>&nbsp; begin<br>&nbsp; &nbsp; for X:=1 to 10 do Temperature[X]:=STemperature[X];<br>&nbsp; &nbsp; for X:=1 to 10 do Voltage[X]:=SVoltage[X];<br>&nbsp; &nbsp; for X:=1 to 10 do Fan[X]:=SFan[X];<br>&nbsp; &nbsp; CPUMHZ:=SMHZ;<br>&nbsp; &nbsp; CPUNr:=SNrCPU;<br>&nbsp; &nbsp; for X:=1 to 4 do CPU[X]:=SCPU[X];<br>&nbsp; end;<br>&nbsp; UnMapViewOfFile(PSH);<br>&nbsp; CloseHandle(hSData);<br>&nbsp; Result:=True;<br>end;<br>function ReadSharedInfo : Boolean;<br>var<br>&nbsp; PSH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: PSharedInfo;<br>&nbsp; hSInfo &nbsp; &nbsp; &nbsp; : Integer;<br>begin<br>&nbsp; Result:=False;<br>&nbsp; hSInfo:=OpenFileMapping(FILE_MAP_READ, False, '$M$B$M$5$I$');<br>&nbsp; if hSInfo=0 then Exit;<br>&nbsp; PSH:=MapViewOfFile(hSInfo, FILE_MAP_READ, 0, 0, 0);<br>&nbsp; if PSH=Nil then<br>&nbsp; begin<br>&nbsp; &nbsp; CloseHandle(hSInfo);<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; with PSH^ do<br>&nbsp; begin<br>&nbsp; &nbsp; SMB_Base:=SSMB_Base;<br>&nbsp; &nbsp; UsedBus:=SSMB_Type;<br>&nbsp; &nbsp; SmbusType:=SSMB_Code;<br>&nbsp; &nbsp; SMBChipAddress:=SSMB_Addr;<br>&nbsp; &nbsp; SMB_Name:=StrPas(SSMB_Name);<br>&nbsp; &nbsp; ISABase:=SISA_Base;<br>&nbsp; &nbsp; ChipType:=SChipType;<br>&nbsp; &nbsp; VoltageSubType:=SVoltageSubType;<br>&nbsp; end;<br>&nbsp; UnMapViewOfFile(PSH);<br>&nbsp; CloseHandle(hSInfo);<br>&nbsp; Result:=True;<br>end;<br>function ReadSharedHL : Boolean;<br>var<br>&nbsp; PSH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: PSharedHL;<br>&nbsp; hSHL &nbsp; &nbsp; &nbsp; &nbsp; : Integer;<br>&nbsp; X &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer;<br>begin<br>&nbsp; Result:=False;<br>&nbsp; hSHL:=OpenFileMapping(FILE_MAP_READ, False, '$M$B$M$5$H$');<br>&nbsp; if hSHL =0 then Exit;<br>&nbsp; PSH:=MapViewOfFile(hSHL, FILE_MAP_READ, 0, 0, 0);<br>&nbsp; if PSH=Nil then<br>&nbsp; begin<br>&nbsp; &nbsp; CloseHandle(hSHL);<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; with PSH^ do<br>&nbsp; begin<br>&nbsp; &nbsp; for X:=1 to 10 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; TempL[X]:=STempL[X];<br>&nbsp; &nbsp; &nbsp; TempH[X]:=STempH[X];<br>&nbsp; &nbsp; &nbsp; TempA[X]:=STempA[X];<br>&nbsp; &nbsp; &nbsp; TempC[X]:=STempC[X];<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; for X:=1 to 10 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; VoltL[X]:=SVoltL[X];<br>&nbsp; &nbsp; &nbsp; VoltH[X]:=SVoltH[X];<br>&nbsp; &nbsp; &nbsp; VoltA[X]:=SVoltA[X];<br>&nbsp; &nbsp; &nbsp; VoltC[X]:=SVoltC[X];<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; for X:=1 to 10 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; FanL[X]:=SFanL[X];<br>&nbsp; &nbsp; &nbsp; FanH[X]:=SFanH[X];<br>&nbsp; &nbsp; &nbsp; FanA[X]:=SFanA[X];<br>&nbsp; &nbsp; &nbsp; FanC[X]:=SFanC[X];<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; StartingTimeLog:=StrPas(SStart);<br>&nbsp; &nbsp; CurrentTimeLog:=StrPas(SCurrent);<br>&nbsp; &nbsp; for X:=1 to 4 do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; CPUL[X]:=SCPUL[X];<br>&nbsp; &nbsp; &nbsp; CPUH[X]:=SCPUH[X];<br>&nbsp; &nbsp; &nbsp; CPUA[X]:=SCPUA[X];<br>&nbsp; &nbsp; &nbsp; CPUC[X]:=SCPUC[X];<br>&nbsp; &nbsp; end;<br>&nbsp; end;<br>&nbsp; UnMapViewOfFile(PSH);<br>&nbsp; CloseHandle(hSHL);<br>&nbsp; Result:=True;<br>end;<br>function ReadSharedName : Boolean;<br>var<br>&nbsp; PSH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: PSharedName;<br>&nbsp; hSData &nbsp; &nbsp; &nbsp; : Integer;<br>&nbsp; X &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: Integer;<br>begin<br>&nbsp; Result:=False;<br>&nbsp; hSData:=OpenFileMapping(FILE_MAP_READ, False, '$M$B$M$5$N$');<br>&nbsp; if hSData=0 then Exit;<br>&nbsp; PSH:=MapViewOfFile(hSData, FILE_MAP_READ, 0, 0, 0);<br>&nbsp; if PSH=Nil then<br>&nbsp; begin<br>&nbsp; &nbsp; CloseHandle(hSData);<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; with PSH^ do<br>&nbsp; begin<br>&nbsp; &nbsp; for X:=1 to 10 do TempName[X]:=StrPas(STempName[X])<br>&nbsp; &nbsp; for X:=1 to 10 do VoltName[X]:=StrPas(VoltName[X])<br>&nbsp; &nbsp; for X:=1 to 10 do FanName[X]:=StrPas(FanName[X])<br>&nbsp; &nbsp; CPUName:=StrPas(SCPUName);<br>&nbsp; &nbsp; CPUUsageName:=StrPas(SCPUName);<br>&nbsp; end;<br>&nbsp; UnMapViewOfFile(PSH);<br>&nbsp; CloseHandle(hSData);<br>&nbsp; Result:=True;<br>end;<br>
 
还是用现成的软件吧,多省事。
 
to YB_unique:<br>你试过能用吗?<br>hSData:=OpenFileMapping(FILE_MAP_READ, False, '$M$B$M$5$N$');<br>hSData 为 0,函数返回 False;<br>其它几个函数也如此。
 
现成的软件在哪里下载呢?
 
To 张一健:<br>&nbsp; &nbsp;我当然试过,已经运行通过!<br>&nbsp; &nbsp;不过需要MBM控件包的支持!最新版为 MBM 5.0
 
那哪里有 MBM 控件包?
 
还是不能运行呀,是不是控件我装的不对?或是其他问题?
 
IBM公司的 System Management BIOS Reference Specfication(SMBIOS)对涉及到BIOS数据编程<br>的方式有很详细的说明。大部分第三方读取BIOS数据的软件都是根据此文档制成(至少我所见到<br>的几个台湾通用的主板监视软件都是此途径),否则你就要从主板芯片组定义入手,这似乎无法<br>做到。<br>该文档的下载地址:<br>http://www.ibm.com/products/surepath/other/smbios.pdf
 
顶部