Question :
How can I get network card unique ID ? Answer :
function _SysGetNICAddress: string;
var
Tmp : TGUID;
tmpstr : string;
newstr : string;
cnt : integer;
begin
try
CoCreateGuid(Tmp);
tmpstr := GuidToString(Tmp);
tmpstr := Copy(tmpstr, Length(tmpstr)-12, 12);
for cnt := 1 to 5 do
newstr := newstr + copy(tmpstr, cnt*2-1, 2) + '-';
newstr := newstr + copy(tmpstr, 11, 2);
except
newstr := '';
end;
Result := newstr;
end;
How can I get network card unique ID ? Answer :
function _SysGetNICAddress: string;
var
Tmp : TGUID;
tmpstr : string;
newstr : string;
cnt : integer;
begin
try
CoCreateGuid(Tmp);
tmpstr := GuidToString(Tmp);
tmpstr := Copy(tmpstr, Length(tmpstr)-12, 12);
for cnt := 1 to 5 do
newstr := newstr + copy(tmpstr, cnt*2-1, 2) + '-';
newstr := newstr + copy(tmpstr, 11, 2);
except
newstr := '';
end;
Result := newstr;
end;
解决方案 »
- 如何去掉控件的一个属性
- 那个技术网站最好啊,我是菜鸟。
- 如何让ComboBox完整显示Items里面很长的字符串,就是有什么办法控制ComboBox下拉列表的宽度???
- 【请教】如何从内存流里播放Mp3、WMA等媒体文件?
- 如何查询某一时间段内的数据
- 在两幅图像对比之下,如何取得两幅图像的不同之处显示在第三幅图像上
- 如何在console application 程序中延长窗口显示时间?
- 为什么delphi用ADO调用ACCESS数据库,速度上就远不如VB用DAO调用ACCESS数据库?
- 如何使鼠标移到一个未激活的窗口时,显示控件的提示?如FlashGet的下载小窗口。当焦点不在下载小窗口时候,鼠标移到小窗口上一样能显示提示??
- 在Delphi中如何实现类似VB中Do Events的功能?
- 如何创建用户名称及密码登录窗口
- 100分求DELPHI网络编程的资料!
附加功能:
提问者:如要继续讨论请定期提前贴子,如不想讨论请结束贴子。
Implementation {$R *.DFM} Procedure TForm1.Button1Click(Sender : TObject);
Begin
label1.Caption:=NBGetAdapterAddress(StrtoInt(Edit1.Text));
End; Function NBGetAdapterAddress(a:Integer) : 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
// Initialize
Result := ''; Try
// Zero control blocl
ZeroMemory(@NCB, SizeOf(NCB)); // Issue enum command
NCB.ncb_command := Chr(NCBENUM);
cRC := NetBios(@NCB); // Reissue enum command
NCB.ncb_buffer := @LANAENUM;
NCB.ncb_length := SizeOf(LANAENUM);
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit; // Reset adapter
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBRESET);
NCB.ncb_lana_num := LANAENUM.lana[a];
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit; // Get adapter address
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBASTAT);
NCB.ncb_lana_num := LANAENUM.lana[a];
StrPCopy(NCB.ncb_callname, '*');
NCB.ncb_buffer := @ADAPTER;
NCB.ncb_length := SizeOf(ADAPTER);
cRC := NetBios(@NCB); // Convert it to string
strTemp := '';
For intIdx := 0 To 5 Do
strTemp := strTemp + InttoHex(Integer(ADAPTER.adapter_address[in
tIdx]),2);
Result := strTemp;
Finally
End;
End;