请问:如何获取主板的唯一标识?
解决方案 »
- Delphi 自动端口映射
- 请教高手:在cxGrid中的设置了summary后,怎么在下面没有显示?解决后立刻给分!
- 查询下载问题~急~
- 我一个基于SQL SERVER2000开发的系统,平时用的好好的,今天出然在保存时跳出来一句“Non-blob column in table required to perform ope
- 大家好,各位能否帮初学的我解决一个问题?
- 关于convert函数的问题?
- 如何利用Image资源
- 解决delphi随机树不随机的问题。up有分
- 送分,旧帖重贴:好久没贴过了,送点分。。。
- 一个简单的数组问题..
- 又是Access时间查询问题,有人遇到过吗?
- 关于Canvas的问题,没有找到解决方案
uses SHA1, Base64; function GetHashedBiosInfo: string;
var
SHA1Context: TSHA1Context;
SHA1Digest: TSHA1Digest;
begin
// Get the BIOS data
SetString(Result, PChar(Ptr($F0000)), $10000);
// Hash the string
SHA1Init(SHA1Context);
SHA1Update(SHA1Context, PChar(Result), Length(Result));
SHA1Final(SHA1Context, SHA1Digest);
SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest));
// Return the hash string encoded in printable characters
Result := B64Encode(Result);
end;
function GetBiosInfoAsText: string;
var
p, q: pchar;
begin
q := nil;
p := PChar(Ptr($FE000));
repeat
if q <> nil then begin
if not (p^ in [#10, #13, #32..#126, #169, #184]) then begin
if (p^ = #0) and (p - q >= 8) then begin
Result := Result + TrimRight(String(q)) + #13#10;
end;
q := nil;
end;
end else
if p^ in [#33..#126, #169, #184] then
q := p;
inc(p);
until p > PChar(Ptr($FFFFF));
Result := TrimRight(Result);
end; procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text := GetBiosInfoAsText;
end;