const discVerb = '停用(&B)'; connVerb = '啟用(&A)';function DisableEthernet(const EthName: String): Boolean; var // shell1: variant; //cpFolder: variant; cpFolder: Folder; nwFolder: Folder; nVerbs: FolderItemVerbs; i,j,k: integer; begin result := false; // shell1 := CreateObject('shell.application'); 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; 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; function EnableEthernet(const EthName: String): Boolean; var cpFolder: Folder; nwFolder: Folder; nVerbs: FolderItemVerbs; i,j,k: integer; 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 = connVerb then begin nVerbs.Item(k).DoIt; 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;procedure TForm1.Button1Click(Sender: TObject); begin DisableEthernet('區域連線'); end;procedure TForm1.Button2Click(Sender: TObject); begin EnableEthernet('區域連線'); end;
discVerb = '停用(&B)';
connVerb = '啟用(&A)';function DisableEthernet(const EthName: String): Boolean;
var
// shell1: variant;
//cpFolder: variant;
cpFolder: Folder;
nwFolder: Folder;
nVerbs: FolderItemVerbs;
i,j,k: integer;
begin
result := false; // shell1 := CreateObject('shell.application'); 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;
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;
function EnableEthernet(const EthName: String): Boolean;
var
cpFolder: Folder;
nwFolder: Folder;
nVerbs: FolderItemVerbs;
i,j,k: integer;
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 = connVerb then
begin
nVerbs.Item(k).DoIt;
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;procedure TForm1.Button1Click(Sender: TObject);
begin
DisableEthernet('區域連線');
end;procedure TForm1.Button2Click(Sender: TObject);
begin
EnableEthernet('區域連線');
end;
1、我用的是Delphi好象没有Folder和FolderItemVerbs变量。
2、我主要是想实现Win98下的网卡屏蔽。经过尝试,发现,停用网卡至少做了两个动作,
一个修改注册表,另一个未知。谁还有办法?
???????????????????????????
???????????????????????????
???????????????????????????
http://www.donews.net/zwell/archive/2004/07/30/54476.aspx
其实,我找到了的例子,就是他的方法。