获取主板Bios信息
添加一个Tbutton和一个Tmemo组件到窗体并写如下代码到按钮的OnClick事件:with Memo1.Lines do 
begin 
Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71)))); 
end; 以上代码在Win9X上运行通过,为何在WinXP下无法通过(提示:存取地址 004043EF 违例发生在模块Project1.exe中,读取在'000FE061'里)?应如何修改才能在winxp下通过?

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      Edit1.Text:=String(PChar(Ptr($FFFF5)));  //bios date 
      Edit2.Text:=String(PChar(Ptr($FFA68)));  //bios name 
      Edit3.Text:=String(PChar(Ptr($FE061)));  //bios version 
      Edit4.Text:=String(PChar(Ptr($FEC71)));  //bios serial number 
      Edit5.Text:=String(PChar(Ptr($FE091)));  //bios copyright 
    end; 
    //快付分吧$_$
      

  2.   

    To : hhzqf1980(hh) 
    ^I+string(Pchar(Ptr($FEC71)))); 
    String(PChar(Ptr($FEC71)));  
    这两句有本质的区别吗?能解说一下吗?
      

  3.   

    欢迎大家加入DELPHI程序员群1805366 ,一起交流技术!
      

  4.   

    To : hhzqf1980(hh)
    你的代码也跟我的一样,无法在WIN XP下通过。
      

  5.   

    NT/2000/XP/2003不允许直接访问程序以外的物理地址,还是想个别的办法吧。
      

  6.   

    在Win XP下有什么办法可以获取主板的ID等?
      

  7.   

    http://www.dmtf.org/standards/bios.php