您的位置:首页 > 编程语言 > C#

C# 启用或禁用网卡 2种方法

2012-08-15 14:30 323 查看
/article/6764817.html

[DllImport("wininet.dll")]

private extern static bool InternetCheckConnection(String url, int flag, int ReservedValue);

/// <summary>

/// 第一步.检测外网的一个网站,如www.baidu.com

/// </summary>

/// <returns></returns>

public bool GetExtranet()

{

bool extranet = false;

try

{

if (InternetCheckConnection("http://www.baidu.com/", 1, 0).Equals(false))

{

extranet = false;

}

else

{

extranet = true;

}

}

catch (Exception e)

{

e.ToString();

}

return extranet;

}

1

//禁用 SetNetworkAdapter(False)

//启用 SetNetworkAdapter(True)

//添加引用system32\shell32.dll

private static bool SetNetworkAdapter(bool status)

{

const string discVerb = "停用(&B)"; // "停用(&B)";

const string connVerb = "启用(&A)"; // "启用(&A)";

const string network = "网络连接"; //"网络连接";

const string networkConnection = "VMware Network Adapter VMnet1"; // "本地连接"

string sVerb = null;

if (status)

{

sVerb = connVerb;

}

else

{

sVerb = discVerb;

}

Shell32.Shell sh = new Shell32.Shell();

Shell32.Folder folder = sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);

try

{

//进入控制面板的所有选项

foreach (Shell32.FolderItem myItem in folder.Items())

{

//进入网络连接

if (myItem.Name == network)

{

Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;

foreach (Shell32.FolderItem fi in fd.Items())

{

//找到本地连接

if ((fi.Name == networkConnection))

{

//找本地连接的所有右键功能菜单

foreach (Shell32.FolderItemVerb Fib in fi.Verbs())

{

if (Fib.Name == sVerb)

{

Fib.DoIt();

return true;

}

}

}

}

}

}

}

catch (Exception e)

{

Console.WriteLine(e.Message);

return false;

}

return true;

}

======

2

c#中禁用和开启网卡

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Management;

using System.Collections;

namespace NetWorkControl

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

NetWorkList();

}

/// <summary>

/// 网卡列表

/// </summary>

public void NetWorkList()

{

string manage = "SELECT * From Win32_NetworkAdapter";

ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);

ManagementObjectCollection collection = searcher.Get();

List<string> netWorkList = new List<string>();

foreach (ManagementObject obj in collection)

{

netWorkList.Add(obj["Name"].ToString());

}

this.cmbNetWork.DataSource = netWorkList;

}

/// <summary>

/// 禁用网卡

/// </summary>5

/// <param name="netWorkName">网卡名</param>

/// <returns></returns>

public bool DisableNetWork(ManagementObject network)

{

try

{

network.InvokeMethod("Disable", null);

return true;

}

catch

{

return false;

}

}

/// <summary>

/// 启用网卡

/// </summary>

/// <param name="netWorkName">网卡名</param>

/// <returns></returns>

public bool EnableNetWork(ManagementObject network)

{

try

{

network.InvokeMethod("Enable", null );

return true;

}

catch

{

return false;

}

}

/// <summary>

/// 网卡状态

/// </summary>

/// <param name="netWorkName">网卡名</param>

/// <returns></returns>

public bool NetWorkState(string netWorkName)

{

string netState = "SELECT * From Win32_NetworkAdapter";

ManagementObjectSearcher searcher = new ManagementObjectSearcher(netState);

ManagementObjectCollection collection = searcher.Get();

foreach (ManagementObject manage in collection)

{

if (manage["Name"].ToString() == netWorkName )

{

return true;

}

}

return false;

}

/// <summary>

/// 得到指定网卡

/// </summary>

/// <param name="networkname">网卡名字</param>

/// <returns></returns>

public ManagementObject NetWork(string networkname)

{

string netState = "SELECT * From Win32_NetworkAdapter";

ManagementObjectSearcher searcher = new ManagementObjectSearcher(netState);

ManagementObjectCollection collection = searcher.Get();

foreach (ManagementObject manage in collection)

{

if (manage["Name"].ToString() == networkname)

{

return manage;

}

}

return null;

}

private void btnStart_Click(object sender, EventArgs e)

{

if (NetWorkState(this.cmbNetWork.SelectedValue.ToString()))

{

if (!EnableNetWork(NetWork(this.cmbNetWork.SelectedValue.ToString())))

{

MessageBox.Show("开启网卡失败!");

}

else

{

MessageBox.Show("开启网卡成功!");

}

}

else

{

MessageBox.Show("网卡己开启!");

}

NetWorkList();

}

private void btnStop_Click(object sender, EventArgs e)

{

if (NetWorkState(this.cmbNetWork.SelectedValue.ToString()))

{

if (!DisableNetWork(NetWork(this.cmbNetWork.SelectedValue.ToString())))

{

MessageBox.Show("禁用网卡失败!");

}

else

{

MessageBox.Show("禁用网卡成功!");

}

}

else

{

MessageBox.Show("网卡己禁用!");

}

NetWorkList();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: