得到Bios序列号的代码都要Dll,烦!如搞定,马上给分!!!

解决方案 »

  1.   

    http://djrj.51.net/bcjq/all/69.htm 上有
      

  2.   

    那是Win98的, Win2000出错!
      

  3.   

    用BiosHelp.pas把内存Dump出,查FEC71就可以了不过这只是Award的, AMI的没试过!
      

  4.   

    老大们给个 BiosHelp.pas吧[email protected]
      

  5.   

    获取bios的信息procedure TForm1.BiosInfo; 
    const 
     Subkey: string = ''Hardware\description\system''; 
    var 
     hkSB: HKEY; 
     rType: LongInt; 
     ValueSize, OrigSize: Longint; 
     ValueBuf: array[0..1000] of char; 
     procedure ParseValueBuf(const VersionType: string); 
     var 
       I, Line: Cardinal; 
       S: string; 
     begin 
       i := 0; 
       Line := 0; 
       while ValueBuf[i] <> #0 do 
       begin 
         S := StrPas(@ValueBuf[i]); // move the Pchar into a string 
         Inc(Line); 
         Memo1.Lines.Append(Format(''%s Line %d = %s'', 
           [VersionType, Line, S])); // add it to a Memo 
         inc(i, Length(S) + 1); 
         // to point to next sz, or to #0 if at 
       end 
     end; 
    end; begin 
     if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(Subkey), 0, 
                     KEY_READ, hkSB) = ERROR_SUCCESS then 
     try 
       OrigSize := sizeof(ValueBuf); 
       ValueSize := OrigSize; 
       rType := REG_MULTI_SZ; 
       if RegQueryValueEx(hkSB, ''SystemBiosVersion'', nil, @rType, 
         @ValueBuf, @ValueSize) = ERROR_SUCCESS then 
         ParseValueBuf(''System BIOS Version'');    ValueSize := OrigSize; 
       rType := REG_SZ; 
       if RegQueryValueEx(hkSB, ''SystemBIOSDate'', nil, @rType, 
         @ValueBuf, @ValueSize) = ERROR_SUCCESS then 
         Memo1.Lines.Append(''System BIOS Date '' + ValueBuf);    ValueSize := OrigSize; 
       rType := REG_MULTI_SZ; 
       if RegQueryValueEx(hkSB, ''VideoBiosVersion'', nil, @rType, 
         @ValueBuf, @ValueSize) = ERROR_SUCCESS then 
         ParseValueBuf(''Video BIOS Version'');    ValueSize := OrigSize; 
       rType := REG_SZ; 
       if RegQueryValueEx(hkSB, ''VideoBIOSDate'', nil, @rType, 
         @ValueBuf, @ValueSize) = ERROR_SUCCESS then 
         Memo1.Lines.Append(''Video BIOS Date '' + ValueBuf); 
     finally 
       RegCloseKey(hkSB); 
     end; 
    end; 
      

  6.   

    Win2000下找不到键值还是BiosHelp管用,搞顶了。谢谢!