首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

获取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;

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章