获取硬盘系列号、CPU系列号、网卡系列号:答者尽散分!

Jute 2005-02-18 04:22:59
有仁者回答我以下问题:
一、获取硬盘系列号。
二、CPU系列号。
三、网卡系列号。

我将给你100分,然后再给。
...全文
357 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterruan226 2005-05-14
  • 打赏
  • 举报
回复
搜索一下,我记得以前在CSDN就有看过
blazeworld 2005-05-14
  • 打赏
  • 举报
回复
顶先~`
pengxuan 2005-05-14
  • 打赏
  • 举报
回复
哦,来晚一步,那就蹭分吧
CSDN0_0 2005-05-14
  • 打赏
  • 举报
回复
FAQ里好象就有!
lyqili 2005-05-14
  • 打赏
  • 举报
回复
请教各位大哥一个问题,我现在在做关于一个IEEE754格式的数据转化为一个十进制的问题。代码如下:procedure TForm1.Button1Click(Sender: TObject);
VAR e,a1,a2,a3:BYTE;
M:integer;
z:extended;
value:extended;
begin
BUF[0]:=$50;
BUF[1]:=$80;
BUF[2]:=$00;
BUF[3]:=$00;
E:=(BUF[0] SHL 1)+(BUF[1] SHR 7)-126;
a1:=BUF[1] AND $FF;
a2:=BUF[2] AND $FF;
a3:=BUF[3] AND $FF;
M:=(a1 shr 4)*1048576+(a1 and $0f)*65536+(a2 shr 4)*4096+(a2 and $0f)*256+(a3 shr 4)*16+(a3 and $0f);
value:=(power(2,E));
z:=(value * m)div $1000000;
showmessage(floattostr(z));
end;
其中E为指数,M为尾数,Z为最后要的数据结果。可是最后输出的结果不正确,不知道是怎么回事,请各位大哥指点一下。
gstang 2005-05-14
  • 打赏
  • 举报
回复
学习。
richlife 2005-04-14
  • 打赏
  • 举报
回复
学习!
delphi1998 2005-04-14
  • 打赏
  • 举报
回复
xieyongxiang(闲人)的两种方法获得的硬盘序列号不一样?
yeeyee 2005-04-13
  • 打赏
  • 举报
回复
找个有源码的控件吧,省事,安全。
xieyongxiang 2005-04-12
  • 打赏
  • 举报
回复

4、获取网卡序列号

Function GetMacAddress (nIndex:Integer = 1; strFlag:string = ':') : String;
Var
NCB : TNCB; // Netbios control block //NetBios控制块
ADAPTER : TADAPTERSTATUS; // Netbios adapter status//取网卡状态
LANAENUM : TLANAENUM; // Netbios lana
intIdx : Integer; // Temporary work value//临时变量
cRC : Char; // Netbios return code//NetBios返回值
strTemp : String; // Temporary string//临时变量

Begin
Result := '';
try
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBENUM);
cRC := NetBios(@NCB);
NCB.ncb_buffer := @LANAENUM;
NCB.ncb_length := SizeOf(LANAENUM);
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit;
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBRESET);
NCB.ncb_lana_num := LANAENUM.lana[nIndex];
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit;
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBASTAT);
NCB.ncb_lana_num := LANAENUM.lana[nIndex];
StrPCopy(NCB.ncb_callname, '*');
NCB.ncb_buffer := @ADAPTER;
NCB.ncb_length := SizeOf(ADAPTER);
cRC := NetBios(@NCB);
strTemp := InttoHex(Integer(ADAPTER.adapter_address[0]),2);
For intIdx := 1 To 5 Do
strTemp := strTemp +strFlag+ InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2);
except
strTemp := '';
end;
Result := strTemp;
End;
xieyongxiang 2005-04-12
  • 打赏
  • 举报
回复


3、获取CPU的。
function GetCPUID: TCPUID; assembler;register;
begin
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Resukt}
MOV EAX,1
DW $A20F {CPUID Command}
STOSD {CPUID[1]}
MOV EAX,EBX
STOSD {CPUID[2]}
MOV EAX,ECX
STOSD {CPUID[3]}
MOV EAX,EDX
STOSD {CPUID[4]}
POP EDI{Restore registers}
POP EBX
end;
end;
xieyongxiang 2005-04-12
  • 打赏
  • 举报
回复
楼主有福了,哈哈

1、取得硬盘序列号
function tform1.GetHDSerialNumber: LongInt;
{$IFDEF WIN32}
var
pdw : pDWord;
mc, fl : dword;
{$ENDIF}
begin
{$IfDef WIN32}
New(pdw);
GetVolumeInformation('c:\',nil,0,pdw,mc,fl,nil,0);
Result := pdw^;
dispose(pdw);
{$ELSE}
Result := GetWinFlags;
{$ENDIF}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=inttostr(gethdserialnumber);
end;

2、得到硬盘序列号
var SerialNum : pdword; a, b : dword; Buffer : array [0..255] of char;
begin
if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then Label1.Caption :=

IntToStr(SerialNum^);
end;

vinsonshen 2005-04-11
  • 打赏
  • 举报
回复
up
zhoujie99 2005-04-11
  • 打赏
  • 举报
回复
路过,学一招!
caiso 2005-03-07
  • 打赏
  • 举报
回复
顶一下^_^
Heyongfeng 2005-03-07
  • 打赏
  • 举报
回复
同意。
tengxiang05 2005-02-18
  • 打赏
  • 举报
回复
脚印
cctv6012cn 2005-02-18
  • 打赏
  • 举报
回复
楼主,结帖吧。结果已经出来乐。
smiler007 2005-02-18
  • 打赏
  • 举报
回复
在CSDN里搜索一下,不少这样的帖子的
jb99334 2005-02-18
  • 打赏
  • 举报
回复
网卡的MAC
//加入nb30.pas单元

var
LanaNum: Byte;
MACAddress: PMACAddress;
RetCode: Byte;
begin
LanaNum := StrToInt(ComboBox1.Text);
New(MACAddress);
try
RetCode := GetMACAddress(LanaNum, MACAddress);
if RetCode = NRC_GOODRET then
begin
Edit1.Text := Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%.2x',
MACAddress[0], MACAddress[1], MACAddress[2], MACAddress[3],
MACAddress[4], MACAddress[5]]);
end else
begin
Beep;
Edit1.Text := 'Error';
ShowMessage('GetMACAddress Error! RetCode = $' +
IntToHex(RetCode, 2));
end;
finally
Dispose(MACAddress);
end;
---------------
function GetCpuId:longint;assembler;register;
var
temp:longint;
begin
asm
PUSH EBX
PUSH EDI
MOV EDI,EAX
MOV EAX,1
DW $A20F
MOV TEMP,EDX
POP EDI
POP EBX
end;
result:=temp;
end;
加载更多回复(4)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧