delphi 怎么断网

[复制链接]
查看11 | 回复0 | 2009-8-6 08:42:23 | 显示全部楼层 |阅读模式
unit Unit_FrmMain;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTFrmMain = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);private
{ Private declarations }public
{ Public declarations }end;varFrmMain: TFrmMain;implementation{$R *.dfm}constiphlpapilib = 'iphlpapi.dll';MAX_INTERFACE_NAME_LEN = 256; // MPRAPI.HANY_SIZE = 1;MAXLEN_IFDESCR = 256;MAXLEN_PHYSADDR = 8;MIB_IF_ADMIN_STATUS_UP = 1;MIB_IF_ADMIN_STATUS_DOWN = 2;MIB_IF_ADMIN_STATUS_TESTING = 3;type_MIB_IFROW = record
wszName: array[0..MAX_INTERFACE_NAME_LEN - 1] of WCHAR;
dwIndex: DWORD;
dwType: DWORD;
dwMtu: DWORD;
dwSpeed: DWORD;
dwPhysAddrLen: DWORD;
bPhysAddr: array[0..MAXLEN_PHYSADDR - 1] of BYTE;
dwAdminStatus: DWORD;
dwOperStatus: DWORD;
dwLastChange: DWORD;
dwInOctets: DWORD;
dwInUcastPkts: DWORD;
dwInNUcastPkts: DWORD;
dwInDiscards: DWORD;
dwInErrors: DWORD;
dwInUnknownProtos: DWORD;
dwOutOctets: DWORD;
dwOutUcastPkts: DWORD;
dwOutNUcastPkts: DWORD;
dwOutDiscards: DWORD;
dwOutErrors: DWORD;
dwOutQLen: DWORD;
dwDescrLen: DWORD;
bDescr: array[0..MAXLEN_IFDESCR - 1] of BYTE;end;MIB_IFROW = _MIB_IFROW;_MIB_IFTABLE = record
dwNumEntries: DWORD;
table: array[0..ANY_SIZE - 1] of MIB_IFROW;end;MIB_IFTABLE = _MIB_IFTABLE;PMIB_IFTABLE = ^MIB_IFTABLE;function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: ULONG; bOrder: BOOL): DWORD; stdcall; external iphlpapilib name 'GetIfTable';function SetIfEntry(const pIfRow: MIB_IFROW): DWORD; stdcall; external iphlpapilib name 'SetIfEntry';procedure TFrmMain.Button1Click(Sender: TObject);vardwSize: DWORD;mit: PMIB_IFTABLE;i: integer;begin//dwSize := 0;//mit := nil;GetIfTable(nil, dwSize, TRUE);mit := GetMemory(dwSize);if GetIfTable(mit, dwSize, TRUE) = NO_ERROR then
for i := 0 to Pred(mit^.dwNumEntries) do
begin
mit^.table.dwAdminStatus := MIB_IF_ADMIN_STATUS_DOWN;
if SetIfEntry(mit^.table) = NO_ERROR then
Showmessage('Stop Adapter(' + IntToStr(mit^.table.dwIndex) + ')'
+ pchar(@mit^.table.bDescr[0]) + ' succeed.');
end;FreeMemory(mit);end;procedure TFrmMain.Button2Click(Sender: TObject);vardwSize: DWORD;mit: PMIB_IFTABLE;i: integer;begin//dwSize := 0;//mit := nil;GetIfTable(nil, dwSize, TRUE);mit := GetMemory(dwSize);if GetIfTable(mit, dwSize, TRUE) = NO_ERROR then
for i := 0 to Pred(mit^.dwNumEntries) do
begin
mit^.table.dwAdminStatus := MIB_IF_ADMIN_STATUS_UP;
if SetIfEntry(mit^.table) = NO_ERROR then
Showmessage('Start Adapter(' + IntToStr(mit^.table.dwIndex) + ')'
+ pchar(@mit^.table.bDescr[0]) + ' succeed.');
end;FreeMemory(mit);end;end.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行