请教:如何得到本机网卡的序列号? 请教:如何得到本机网卡的序列号? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读取网卡上的mac 地址应该unit MacAdress;interfaceuses SysUtils,NB30, Classes, Controls, StdCtrls,windows;function Getmac:string;implementationtypePASTAT = ^TASTAT; TASTAT = record adapter : TAdapterStatus; name_buf : TNameBuffer;end;function Getmac:string;var ncb : TNCB; s:string; adapt : TASTAT; lanaEnum : TLanaEnum; i, j, m : integer; strPart, strMac : string;begin result:=''; FillChar(ncb, SizeOf(TNCB), 0); ncb.ncb_command := Char(NCBEnum); ncb.ncb_buffer := PChar(@lanaEnum); ncb.ncb_length := SizeOf(TLanaEnum); s:=Netbios(@ncb); m:=1; if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then m:=0; for i := 0 to integer(lanaEnum.length)-1 do begin FillChar(ncb, SizeOf(TNCB), 0); ncb.ncb_command := Char(NCBReset); ncb.ncb_lana_num := lanaEnum.lana[i]; Netbios(@ncb); Netbios(@ncb); FillChar(ncb, SizeOf(TNCB), 0); ncb.ncb_command := Chr(NCBAstat); ncb.ncb_lana_num := lanaEnum.lana[i]; ncb.ncb_callname := '* '; ncb.ncb_buffer := PChar(@adapt); ncb.ncb_length := SizeOf(TASTAT); if m=1 then begin if Netbios(@ncb) = Chr(0) then strMac := ''; for j := 0 to 5 do begin strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2); strMac := strMac + strPart ; end; SetLength(strMac, Length(strMac)); end; if m=0 then if Netbios(@ncb) <> Chr(0) then begin strMac := ''; for j := 0 to 5 do begin strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2); strMac := strMac + strPart ; end; SetLength(strMac, Length(strMac)); end; end; result:=trim(strmac);end; 多谢:suny_2001(小鱼儿) 我也是鱼 tif页数统计求教! 主表ID插入到从表 请教ActiveX 又是:乱码问题 请问怎样从dbgrid中按字段名取出内容? 求助关于工具条 高分相送!!!!在intraweb中使用ADO出错! 大虾请进----------这个相似度算法如何改?----------- 欢迎讨论OICQ的技术组成。欢迎灌水 有谁知道delphi 5.0企业版升级包的密码? 调用Hook的时候能否直接在屏幕上输出?为什么我每次都是出现很严重的错误? 采取调用外部程序的方法为什么找不到sql server呢?
uses SysUtils,NB30, Classes, Controls, StdCtrls,windows;function Getmac:string;implementationtype
PASTAT = ^TASTAT;
TASTAT = record
adapter : TAdapterStatus;
name_buf : TNameBuffer;
end;function Getmac:string;
var
ncb : TNCB;
s:string;
adapt : TASTAT;
lanaEnum : TLanaEnum;
i, j, m : integer;
strPart, strMac : string;
begin
result:='';
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Char(NCBEnum);
ncb.ncb_buffer := PChar(@lanaEnum);
ncb.ncb_length := SizeOf(TLanaEnum);
s:=Netbios(@ncb);
m:=1;
if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then
m:=0;
for i := 0 to integer(lanaEnum.length)-1 do
begin
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Char(NCBReset);
ncb.ncb_lana_num := lanaEnum.lana[i];
Netbios(@ncb);
Netbios(@ncb);
FillChar(ncb, SizeOf(TNCB), 0);
ncb.ncb_command := Chr(NCBAstat);
ncb.ncb_lana_num := lanaEnum.lana[i];
ncb.ncb_callname := '* ';
ncb.ncb_buffer := PChar(@adapt);
ncb.ncb_length := SizeOf(TASTAT); if m=1 then
begin
if Netbios(@ncb) = Chr(0) then
strMac := '';
for j := 0 to 5 do
begin
strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2);
strMac := strMac + strPart ;
end;
SetLength(strMac, Length(strMac));
end;
if m=0 then
if Netbios(@ncb) <> Chr(0) then
begin
strMac := '';
for j := 0 to 5 do
begin
strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2);
strMac := strMac + strPart ;
end;
SetLength(strMac, Length(strMac));
end;
end;
result:=trim(strmac);
end;