我想用程序获取主板、显卡的BIOS ID和序列号,请问有没有现成的源码???

解决方案 »

  1.   

    MiTeC System Information Component提供这个功能,如果你能找到6.4以前的版本有源程序,6.4以后的版本就没有源程序了,你可以到MSN上找我,我给你一个8.2的有关BIOS内容的源程序!!!
    我的MSN:[email protected]
      

  2.   

    谢谢 Delphi_Li(Delphi Li) ,,请发给我源码!
      

  3.   

    Get Bios Info In Win9x    
      Award BIOS: 
    To get Bios Info ........... Just paste and run. the following code.with Memo1.Lines dobeginAdd('Modal:'+^I+String(Pchar(Ptr($FE061))));Add('CopyRight:'+^I+String(Pchar(Ptr($FE091))));Add('Date:'+^I+String(Pchar(Ptr($FFFF5))));Add('Additional Informacion (serialetc..):'+^I+String(Pchar(Ptr($FEC71))));end;***************//以下函数用以获得计算机BIOS系统信息。function GetBios(value: integer): String;// 1...Bios Type// 2.. Bios Copyright// 3.. Bios Date// 4.. Bios Extended Info// 5.. Bustype// 6.. MachineTypebeginresult:='(unavailable)';case value of1: result:=String(Pchar(Ptr($FE061)));2: result:=String(Pchar(Ptr($FE091)));3: result:=String(Pchar(Ptr($FFFF5)));4: result:=String(Pchar(Ptr($FEC71)));end;end; 
     
     
      

  4.   

    请问如何读取BOIS和网卡信息    
      回复人:aiirii(2000-06-22 19:30:00 ) 得0分 
    读bois的程序:procedure TForm1.Button1Click(Sender: TObject);var data:Smallint;temp:byte;decode,passwd:array [0..9] of char;count,I:integer;begincount:=0;asmmov al,29out $70,almov ah,almov al,28out $70,alin al,$71mov data,axend;while data>0 dobeginif (data<$80) thenbeginpasswd[count]:=char(data);break;endelsebegintemp:=data and $3f;if (temp <= $20) thentemp:=temp or $30;passwd[count]:=char(temp);count:=count+1;data:=data-temp;data:=data shr 2;end;end;i:=0;while (count>=0) dobegindecode[i]:=passwd[count];count:=count-1;i:=i+1;end;showmessage('the CMOS passwd= '+decode);end; 回复人:zxghl(2000-06-22 23:44:00 ) 得50分aiirii的方法通过读取端口获得的结果是 CMOS 参数,这还是不足以作为加密依据。因为口令等数据是会变化的。同硬盘序列号一样。我会随后发一个控件给你,这个控件包含了在win98下读取BIOS、网卡信息的多个功能。  ********************************************另外关于读取BIOS信息,你还不妨试一下以下语句:procedure TForm1.Button1Click(Sender: TObject);varbn, bc, bd, bs: string;begintrybn := String(Pchar(Ptr($FE061)));bc := String(Pchar(Ptr($FE091)));bd := String(Pchar(Ptr($FFFF5)));bs := String(Pchar(Ptr($FEC71)));exceptbn := 'Unsupported';bc := 'Unsupported';bd := 'Unsupported';bs := 'Unsupported';end;showmessage('[BiosName] ' + bn + #13 +'[BiosCopyright] ' + bc + #13 +'[BiosDate] ' + bd + #13 +'[BiosSerial] ' + bs);end;  这段程序在我的三台机器上都通过。另外在一台DOS622机器上,用C语言编写程序读取以上的四个地址都正确,还有直接用DEBUG也可以看到。 
     
       
      

  5.   

    谢谢,Drate(小虫) ,请问在win2000及以上的os可以吗?
      

  6.   

    以上大伙的代码都是只好在Win9x运行获得Bios ID的方法可读取注册表下的二进制