如题
Who 知道?

解决方案 »

  1.   

    禁止网卡?那就SetupAPI可以搞定http://lysoft.7u7.net
      

  2.   

    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;
      

  3.   

    这招不错。可是有点点不合我。
    1、我用的是Delphi好象没有Folder和FolderItemVerbs变量。
    2、我主要是想实现Win98下的网卡屏蔽。经过尝试,发现,停用网卡至少做了两个动作,
    一个修改注册表,另一个未知。谁还有办法?
    ???????????????????????????
    ???????????????????????????
    ???????????????????????????
      

  4.   

    这有个vc的,你看看
    http://www.donews.net/zwell/archive/2004/07/30/54476.aspx
      

  5.   

    ly_liuyang(Liu Yang) 虽然回答简单。
    其实,我找到了的例子,就是他的方法。