如题,方便的话请列出源码,谢谢!
解决方案 »
- Assess violation ad address 0055A7F0 in module 'XXX'. read of address 00000030
- 如何拦截FORM上的控件的消息?
- 两个打印机同时打印
- 请问如何让程序在“启动”菜单?
- 客户端无法访问sqlserver服务器(急啊)
- 各位大虾,用WebSnap能快速地开发复杂的B/S程序?
- 有关combobox的问题
- 用过ClientDataSet的朋友进来看看,在线等待,2个小时结贴,先给50分,问题解决再加50分!!!
- 救命啊!DELPHI语句转换成VB,就一句.
- 谁有控件数组的CODE,给我一份学习学习
- 关于delphi的dll,强烈咨询!!
- TQRBAND在线等侍呀.
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;