Delphi获取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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi XE中获取网卡信息可以通过使用Windows API来实现。首先,我们需要使用GetAdaptersInfo函数来获取网卡信息。这个函数会返回一个IP_ADAPTER_INFO结构体数组,每个结构体都包含了一个网卡的详细信息,比如MAC地址、IP地址等。 我们可以通过以下步骤来实现获取网卡信息的功能: 1. 引入windows单元,在代码中添加windows单元来使用Windows API。 2. 调用GetAdaptersInfo函数,该函数需要一个IP_ADAPTER_INFO的指针作为参数来存储网卡信息。 3. 遍历获取到的IP_ADAPTER_INFO结构体数组,读取每个网卡的信息并进行处理。 4. 在处理网卡信息时,可以获取到MAC地址、IP地址、子网掩码等信息,根据自己的需求来使用这些信息。 以下是一个简单的示例代码,实现了获取网卡信息的功能: ```delphi uses Windows; procedure GetNetworkAdaptersInfo; var AdapterInfo: PIP_ADAPTER_INFO; AdapterInfoSize: ULONG; ReturnValue: ULONG; begin AdapterInfoSize := SizeOf(IP_ADAPTER_INFO); GetMem(AdapterInfo, AdapterInfoSize); try if GetAdaptersInfo(AdapterInfo, AdapterInfoSize) = ERROR_BUFFER_OVERFLOW then begin FreeMem(AdapterInfo); GetMem(AdapterInfo, AdapterInfoSize); end; if GetAdaptersInfo(AdapterInfo, AdapterInfoSize) = NO_ERROR then begin while AdapterInfo <> nil do begin // 处理每个网卡的信息,比如输出MAC地址、IP地址等 // TODO: 在这里加入处理网卡信息的代码 AdapterInfo := AdapterInfo^.Next; end; end; finally FreeMem(AdapterInfo); end; end; ``` 通过这样的方式,我们就可以在Delphi XE中获取网卡信息,满足自己的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值