如何用delphi获得网卡的物理地址 我这儿有一个程序。不过程序是BCB的。如果你的话我EMAIL给你。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的机器没有安装网卡也可以获得GUID,这时候我增么才能知道,机器有没有安装网卡。如果认为安装了一个悉尼的网卡,我又该如何区分呢? 看我的! //获取网卡地址,使用netbios 3.0调用 uses nb30.pas shipped with delphi 4.0 function _NetCardAddress : String ; var NCB : TNCB ; // Netbios control block ADAPTER : TADAPTERSTATUS ; // Netbios adapter status LANAENUM : TLANAENUM ; // Netbios lana intIdx : Integer ; // Temporary work value CRC : Char ; // Netbios return code strTemp : String ; // Temporary string begin Result := '' ; try ZeroMemory(@NCB,SizeOf(NCB)) ; // Zero control blocl NCB.ncb_command := Chr(NCBENUM) ; // Issue enum command cRC := NetBios(@NCB) ; if Ord(cRC)>0 then begin result:=_NBReturnMSG(crc); exit ; end; NCB.ncb_buffer := @LANAENUM ; // Reissue enum command NCB.ncb_length := SizeOf(LANAENUM); cRC := NetBios(@NCB) ; if Ord(cRC)>0 then begin result:=_NBReturnMSG(crc); exit ; end; ZeroMemory(@NCB,SizeOf(NCB)) ; // Reset adapter NCB.ncb_command := Chr(NCBRESET) ; NCB.ncb_lana_num := LANAENUM.lana[0] ; cRC := NetBios(@NCB) ; if Ord(cRC)>0 then begin result:=_NBReturnMSG(crc); exit ; end; ZeroMemory(@NCB,SizeOf(NCB)) ; // Get adapter address NCB.ncb_command := Chr(NCBASTAT) ; NCB.ncb_lana_num := LANAENUM.lana[0] ; StrPCopy(NCB.ncb_callname,'*') ; NCB.ncb_buffer := @ADAPTER ; NCB.ncb_length := SizeOf(ADAPTER) ; cRC := NetBios(@NCB) ; if Ord(cRC)>0 then begin result:=_NBReturnMSG(crc); exit ; end; // Convert Netcard address it to string strTemp := '' ; for intIdx := 0 to 5 do strTemp := strTemp + _Char2Hex(ADAPTER.adapter_address[intIdx]) ; Result := strTemp ; finally end ; end ; 不知你指的是在Window3.2(16Bit Delphi)还是Windows95&98&2000(32Bit Delphi),如果是32位Delphi,使用Netbios(nb30.pas),如果是16位Delphi,使用NetBiosCall(汇编语言)。前一段时间从网上下载了一个控件,可以实现此功能,如果需要,请告知:ZXGHL&NETEASE.COM。 IdMessage另存文件问题! 请问,如何发图片传到服务器上. 报表转成文本文件问题! 在线等待~怎样将动态建立的表的字段加到连接该表的数据集(DataBase)的字段列表(fieldDefs)中,并将字段列表的每个字段的标题改为中文, 要个按月份统计的SQL语句 TDBGrid的fields和columns 有什么区别? 如何在DBGrid中直接添加内容 如何实现PN重复文字不同颜色功能 (100分求问)打开IE并自动登陆到指定网址! +++将wav文件做到exe文件中的问题+++ BDE数据库连接速度问题 Delphi调用VC++的DLL?
如果认为安装了一个悉尼的网卡,我又该如何区分呢?
//获取网卡地址,使用netbios 3.0调用 uses nb30.pas shipped with delphi 4.0
function _NetCardAddress : String ;
var
NCB : TNCB ; // Netbios control block
ADAPTER : TADAPTERSTATUS ; // Netbios adapter status
LANAENUM : TLANAENUM ; // Netbios lana
intIdx : Integer ; // Temporary work value
CRC : Char ; // Netbios return code
strTemp : String ; // Temporary string
begin
Result := '' ;
try
ZeroMemory(@NCB,SizeOf(NCB)) ; // Zero control blocl
NCB.ncb_command := Chr(NCBENUM) ; // Issue enum command
cRC := NetBios(@NCB) ;
if Ord(cRC)>0 then begin
result:=_NBReturnMSG(crc);
exit ;
end; NCB.ncb_buffer := @LANAENUM ; // Reissue enum command
NCB.ncb_length := SizeOf(LANAENUM);
cRC := NetBios(@NCB) ;
if Ord(cRC)>0 then begin
result:=_NBReturnMSG(crc);
exit ;
end;
ZeroMemory(@NCB,SizeOf(NCB)) ; // Reset adapter
NCB.ncb_command := Chr(NCBRESET) ;
NCB.ncb_lana_num := LANAENUM.lana[0] ;
cRC := NetBios(@NCB) ;
if Ord(cRC)>0 then begin
result:=_NBReturnMSG(crc);
exit ;
end;
ZeroMemory(@NCB,SizeOf(NCB)) ; // Get adapter address
NCB.ncb_command := Chr(NCBASTAT) ;
NCB.ncb_lana_num := LANAENUM.lana[0] ;
StrPCopy(NCB.ncb_callname,'*') ;
NCB.ncb_buffer := @ADAPTER ;
NCB.ncb_length := SizeOf(ADAPTER) ;
cRC := NetBios(@NCB) ;
if Ord(cRC)>0 then begin
result:=_NBReturnMSG(crc);
exit ;
end; // Convert Netcard address it to string
strTemp := '' ;
for intIdx := 0 to 5 do strTemp := strTemp + _Char2Hex(ADAPTER.adapter_address[intIdx]) ;
Result := strTemp ;
finally
end ;
end ;