如题,是不是有api函数的?
解决方案 »
- 问一个很傻的问题,,,(说学习Delphi没有前途的没有来哈)
- 子窗体问题,请各位达人帮帮忙:访问子窗体中的控件报错
- 关于Tchart曲线的打印
- 如何做这个报表
- 设计时为mdichild的窗口,如何在运行时当作对话框来调用呢?
- GetIdeDiskSerialNumber(读硬盘ID)不支持Win2003server?????????????
- 请问各位, 如何把按纽或者文本编辑框放入状态条TStatusBar?急!
- 菜问题:怎样得到ADODataSet当前记录的第一个字段的值
- ★★★如何添加listview的每一行的OnClick事件,请帮忙★★★
- 怎样将窗体带到最前面?
- 有form1,form2,....form10,怎样定义窗体数组,并动态显示.
- 高分求delphi调用zlib.dll实现压缩解压缩的代码,放弃使用zlib单元了,生成的结果和.net调用zlib.dll生成的结果不一样
NCB : TNCB;
ADAPTER : TADAPTERSTATUS;
LANAENUM : TLANAENUM;
intIdx : Integer;
result : Char;
buf : String;
begin
Try
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBRESET);
NCB.ncb_lana_num := LANAENUM.lana[0];
result := NetBios(@NCB);
If Ord(result)<>0 Then
exit;
//获取网卡适配器地址
ZeroMemory(@NCB, SizeOf(NCB));
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);
result := NetBios(@NCB);
If Ord(result)<>0 Then
exit;
buf := '';
For intIdx := 0 To 5 Do
buf := buf + InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2)+'-';
edtMACAddress.Text := copy(buf,0,length(buf)-1);
Finally
End;end;
[Error] For loop control variable must be simple local variable
begin
memResult.lines.add('您的第'+edtAdapterNum.text+'个适配器的MAC地址为'+NBGetAdapterAddress(StrtoInt(edtAdapterNum.Text)));
end;
function TfrmMain.NBGetAdapterAddress(adapterNum: integer): String;
//adapter00为指定的网卡适配器
Var
NCB:TNCB; // NetBios控制块
ADAPTER : TADAPTERSTATUS; // 获取网卡状态
LANAENUM : TLANAENUM; // Netbios lana
intIdx : Integer; // 临时变量
cRC : Char; // NetBios返回值
strTemp : String; // 临时变量Begin
Result := '';
Try
// 清空控制块
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command:=Chr(NCBENUM);
cRC := NetBios(@NCB); // 重新设置enum命令
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[adapterNum];
cRC := NetBios(@NCB);
If Ord(cRC)<>0 Then
exit;
// 获取网卡地址
ZeroMemory(@NCB, SizeOf(NCB));
NCB.ncb_command := Chr(NCBASTAT);
NCB.ncb_lana_num := LANAENUM.lana[adapterNum];
StrPCopy(NCB.ncb_callname, '*');
NCB.ncb_buffer := @ADAPTER;
NCB.ncb_length := SizeOf(ADAPTER);
cRC := NetBios(@NCB);
// 将获得信息转换为字符串
strTemp := '';
For intIdx := 0 To 5 Do
strTemp := strTemp + InttoHex(Integer(ADAPTER.adapter_address[intIdx]),2);
Result := strTemp;
Finally
End;
end;