如果一台机器上装了两块以上的网卡,怎么用delphi7查出机器上所有网卡的名称和设置的IP地址? 对delphi控件的使用很不熟悉,有没有系统介绍delphi控件的文章呀?多谢多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多IPunit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,winsock, StdCtrls;type TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; Label1: TLabel; Label2: TLabel; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);type //copy the add_list TAddrList = array [0..20] of PInAddr; PAddrList = ^TAddrList;var phent : PHostEnt; P: PAddrList; I : Integer;begin{ CopyRight (C) Bowman 2000 }{ [email protected] } //detect yahoo.com phent := GetHostByName(pchar(edit1.text)); if phent<>nil then begin I := 0; P := PAddrList(phent^.h_Addr_list); while P[I] <> nil do begin listbox1.items.Add(StrPas(inet_ntoa(P[I]^))); Inc(I) end end;end;procedure TForm1.FormCreate(Sender: TObject);var WSAData : TWSAData;begin //initiates use of WS2_32.DLL if (WSAStartup(MAKEWORD(2,0),WSAData)<>0) then raise Exception.Create('Winsock Version Error');end;procedure TForm1.FormDestroy(Sender: TObject);begin WSACleanUP;end;end. MAC{use NB30}function GetMacString: string;Var NCB : TNCB; // Netbios control block file://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[0]; 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[0]; 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[intIdx]),2); Result := strTemp; Finally End;end; DNS通过Register读取HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下的值 delphi 2007任务栏出现两个 请问这个效果是如何做出来的 Delphi+Access问题?? 在DBGRID中,怎样才能实现按回车键,光标自动跳到一行的下一单元格,一行结束后,又跳到下一行的第一个单元格,······ 怎样让Memo控件打开大于64KB的文本文件? 求助:一直按下鼠标左键的事件。 关于窗体菜单的问题? 关于Socket的OnRead事件 DB数据表的文件头有多长(*.db)?认真回答的,我马上给分,决不食言!!!!!! 有个超小的问题? 找啊找找到一个好朋友! 谁有可以得到主板序列号,硬盘序列号,网卡序列号的函数啊
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,winsock,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
type
//copy the add_list
TAddrList = array [0..20] of PInAddr;
PAddrList = ^TAddrList;
var
phent : PHostEnt;
P: PAddrList;
I : Integer;
begin
{ CopyRight (C) Bowman 2000 }
{ [email protected] }
//detect yahoo.com
phent := GetHostByName(pchar(edit1.text));
if phent<>nil then
begin
I := 0;
P := PAddrList(phent^.h_Addr_list);
while P[I] <> nil do
begin
listbox1.items.Add(StrPas(inet_ntoa(P[I]^)));
Inc(I)
end
end;
end;procedure TForm1.FormCreate(Sender: TObject);
var
WSAData : TWSAData;
begin
//initiates use of WS2_32.DLL
if (WSAStartup(MAKEWORD(2,0),WSAData)<>0) then
raise Exception.Create('Winsock Version Error');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanUP;
end;end.
function GetMacString: string;
Var
NCB : TNCB; // Netbios control block file://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[0];
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[0];
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[intIdx]),2);
Result := strTemp;
Finally
End;
end;
通过Register读取HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下的值