const
discVerb = '禁用(&B)';
connVerb = '启用(&A)';
function DisableEthernet(const EthName: String): Boolean;
var
cpFolder: Folder;
nwFolder: Folder;
nVerbs: FolderItemVerbs;
i,j,k: integer;
aItem: TListItem;
begin
result := false;
cpFolder := Form1.shell1.NameSpace(3);
if cpFolder <> nil then
begin
for i := 0 to cpFolder.items.Count-1 do
begin
if cpFolder.Items.Item(i).Name = '网络和拨号连接' then
begin
nwFolder := cpFolder.items.item(i).GetFolder as Folder;
if nwFolder <> nil then
begin
for j :=0 to nwFolder.items.Count-1 do
begin
if nwFolder.Items.Item(j).Name = EthName then
begin
nVerbs := nwFolder.Items.Item(j).Verbs;
for k := 0 to nVerbs.Count-1 do
begin
if nVerbs.Item(k).Name = discVerb then
begin
nVerbs.Item(k).DoIt;
aItem := Form1.lvLog.Items.Add;
aItem.Caption := FormatDateTime('yyyy-mm-dd hh:mm:ss',now);
aItem.SubItems.Add(EthName);
aItem.SubItems.Add(discVerb);
Result := True;
end;
end;
end;
end;
end;
end;
end;
if nwFolder = nil then
showmessage('Network and Dial-up Connections not found');
end
else
showmessage('control panel not found');end;
discVerb = '禁用(&B)';
connVerb = '启用(&A)';
function DisableEthernet(const EthName: String): Boolean;
var
cpFolder: Folder;
nwFolder: Folder;
nVerbs: FolderItemVerbs;
i,j,k: integer;
aItem: TListItem;
begin
result := false;
cpFolder := Form1.shell1.NameSpace(3);
if cpFolder <> nil then
begin
for i := 0 to cpFolder.items.Count-1 do
begin
if cpFolder.Items.Item(i).Name = '网络和拨号连接' then
begin
nwFolder := cpFolder.items.item(i).GetFolder as Folder;
if nwFolder <> nil then
begin
for j :=0 to nwFolder.items.Count-1 do
begin
if nwFolder.Items.Item(j).Name = EthName then
begin
nVerbs := nwFolder.Items.Item(j).Verbs;
for k := 0 to nVerbs.Count-1 do
begin
if nVerbs.Item(k).Name = discVerb then
begin
nVerbs.Item(k).DoIt;
aItem := Form1.lvLog.Items.Add;
aItem.Caption := FormatDateTime('yyyy-mm-dd hh:mm:ss',now);
aItem.SubItems.Add(EthName);
aItem.SubItems.Add(discVerb);
Result := True;
end;
end;
end;
end;
end;
end;
end;
if nwFolder = nil then
showmessage('Network and Dial-up Connections not found');
end
else
showmessage('control panel not found');end;
解决方案 »
- Delphi相关知识
- 请教汉邦监控软件自带的TCNVC.ocx使用方法
- 关于修改 删除 添加等方法的实现 求可执行代码
- AdvStringGrid的问题,请高手解答!!!
- abstract error
- 跨网段访问数据库,三层结构
- *** 在线等待---如何使得带有F1book(Active控件)的程序可以在其他机子上也运行? ***
- 哪里有《Windows网络编程之delphi版》这本书电子版下载?
- 文本数据过滤的问题----希望大家多多支持啊急
- 菜鸟寻食:
- 在nt系统的work station下,向sqlserver插入数据为什么会报一个右截断(right truncation)的错误??
- 菜鸟问问题:请问下接口到底是怎么回事呢?
看你也没调用什么API啊,怎么实现的?
不明白
另:在98操作系统下是否可用?
这种方法是在2000下的,是通过shell来完成
import libary->Microsoft Shell Controls And Automation
操作过程就相当与
控制面板->网络和拨号连接->本地连接 然后调用右键的禁用命令另外还可以使用Api: SetIfEntryvar
pIfRow: MIB_IFROW;
pAdpInfo: PIP_ADAPTER_INFO;
oBufLen: ULONG;
ret : Integer;
begin
oBufLen := sizeof(IP_ADAPTER_INFO);
GetMem(pAdpInfo,sizeof(IP_ADAPTER_INFO));
ret := GetAdaptersInfo(pAdpInfo,oBufLen);
if ret <> 0 then
begin
ShowMessage('GetAdapterInfo Error');
Exit;
end;
ZeroMemory(@pIfRow,sizeof(MIB_IFROW));
pIfRow.dwIndex := pAdpInfo^.Index;
pIfRow.dwAdminStatus := MIB_IF_ADMIN_STATUS_DOWN;
ret := SetIfEntry(pIfRow);
if ret <> 0 then
begin
ShowMessage('SetIfEntry Error');
Exit;
end;
end;