下面是我的代码: ANY_SIZE:=256;
MIB_TCPROW_OWNER_PID = Record
dwState:DWORD;
dwLocalAddr:DWORD;
dwLocalPort:DWORD;
dwRemoteAddr:DWORD;
dwRemotePort:DWORD;
dwOwningPid:DWORD;
End; MIB_TCPTABLE = Record
deNumEntries:DWORD;
Table:array[0..ANY_SIZE-1] of MIB_TCPROW_OWNER_PID;
End;
TCP_TABLE_CLASS =(TCP_TABLE_BASIC_LISTENER,
TCP_TABLE_BASIC_CONNECTIONS,
TCP_TABLE_BASIC_ALL,
TCP_TABLE_OWNER_PID_LISTENER,
TCP_TABLE_OWNER_PID_CONNECTIONS,
TCP_TABLE_OWNER_PID_ALL,
TCP_TABLE_OWNER_MODULE_LISTENER,
TCP_TABLE_OWNER_MODULE_CONNECTIONS,
TCP_TABLE_OWNER_MODULE_ALL
);
PMIB_TCPTABLE=^MIB_TCPTABLE;
var
Form1: TForm1;
implementation{$R *.dfm}
function GetExtendedTcpTable(
var pTcpTable;
pdwSize:PDWORD;
bOrder:Boolean;
ulAf:ULONG;
Tableclass:TCP_TABLE_CLASS;
Reserved:ULONG
):DWORD;stdcall; external 'iphlpapi.dll'
name 'GetExtendedTcpTable';procedure TForm1.Button2Click(Sender: TObject);
Var
// hSnapshot: THandle; // 进程快照
pTcpTable:PMIB_TCPTABLE;
pdwSize:PDWORD;
Tableclass:TCP_TABLE_CLASS;
i:Integer;
ByteArr:array[0..3] of Byte;
IPAddr:DWORD;
Str:String;
Size:DWORD;
TcpTable:MIB_TCPTABLE;
Code:DWORD;
begin
Tableclass:=TCP_TABLE_OWNER_PID_CONNECTIONS;
pTcpTable:=nil;
Size:=0;
pdwSize:=@Size;
Code:=GetExtendedTcpTable(pTcpTable,pdwSize,True,2,Tableclass,0);
showmessage(IntToStr(Code));
end;GetExtendedTcpTable返回的数值Code是87 msdn的解释是无效的参数,请问怎么回事啊?我不知道调用错在哪里?
MIB_TCPROW_OWNER_PID = Record
dwState:DWORD;
dwLocalAddr:DWORD;
dwLocalPort:DWORD;
dwRemoteAddr:DWORD;
dwRemotePort:DWORD;
dwOwningPid:DWORD;
End; MIB_TCPTABLE = Record
deNumEntries:DWORD;
Table:array[0..ANY_SIZE-1] of MIB_TCPROW_OWNER_PID;
End;
TCP_TABLE_CLASS =(TCP_TABLE_BASIC_LISTENER,
TCP_TABLE_BASIC_CONNECTIONS,
TCP_TABLE_BASIC_ALL,
TCP_TABLE_OWNER_PID_LISTENER,
TCP_TABLE_OWNER_PID_CONNECTIONS,
TCP_TABLE_OWNER_PID_ALL,
TCP_TABLE_OWNER_MODULE_LISTENER,
TCP_TABLE_OWNER_MODULE_CONNECTIONS,
TCP_TABLE_OWNER_MODULE_ALL
);
PMIB_TCPTABLE=^MIB_TCPTABLE;
var
Form1: TForm1;
implementation{$R *.dfm}
function GetExtendedTcpTable(
var pTcpTable;
pdwSize:PDWORD;
bOrder:Boolean;
ulAf:ULONG;
Tableclass:TCP_TABLE_CLASS;
Reserved:ULONG
):DWORD;stdcall; external 'iphlpapi.dll'
name 'GetExtendedTcpTable';procedure TForm1.Button2Click(Sender: TObject);
Var
// hSnapshot: THandle; // 进程快照
pTcpTable:PMIB_TCPTABLE;
pdwSize:PDWORD;
Tableclass:TCP_TABLE_CLASS;
i:Integer;
ByteArr:array[0..3] of Byte;
IPAddr:DWORD;
Str:String;
Size:DWORD;
TcpTable:MIB_TCPTABLE;
Code:DWORD;
begin
Tableclass:=TCP_TABLE_OWNER_PID_CONNECTIONS;
pTcpTable:=nil;
Size:=0;
pdwSize:=@Size;
Code:=GetExtendedTcpTable(pTcpTable,pdwSize,True,2,Tableclass,0);
showmessage(IntToStr(Code));
end;GetExtendedTcpTable返回的数值Code是87 msdn的解释是无效的参数,请问怎么回事啊?我不知道调用错在哪里?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货