C#语言实现定时开启/禁用网卡

  1. 程序运行效果图
  2. 程序实现主要代码
  3. 源代码工程文件(VS2013工程文件编译通过)
  4. 查看网卡名称附图

1.win7旗舰版运行效果图:

2.程序实现主要代码:

 /// 网卡列表
 1 /// <summary>
2 /// 网卡列表
3 /// </summary>
4 public void NetWorkList()
5 {
6 string manage = "SELECT * From Win32_NetworkAdapter";
7 ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);
8 ManagementObjectCollection collection = searcher.Get();
9 List<string> netWorkList = new List<string>();
10
11 foreach (ManagementObject obj in collection)
12 {
13 netWorkList.Add(obj["Name"].ToString());
14
15 }
16 this.cmbNetWork.DataSource = netWorkList;
17
18 }
/// 禁用网卡
 1    /// <summary>
2 /// 禁用网卡
3 /// </summary>5
4 /// <param name="netWorkName">网卡名</param>
5 /// <returns></returns>
6 public bool DisableNetWork(ManagementObject network)
7 {
8 try
9 {
10 network.InvokeMethod("Disable", null);
11 return true;
12 }
13 catch
14 {
15 return false;
16 }
17 }

/// 启用网卡

 1  /// <summary>
2 /// 启用网卡
3 /// </summary>
4 /// <param name="netWorkName">网卡名</param>
5 /// <returns></returns>
6 public bool EnableNetWork(ManagementObject network)
7 {
8 try
9 {
10 network.InvokeMethod("Enable", null);
11 return true;
12 }
13 catch
14 {
15 return false;
16 }
17
18 }
/// 网卡状态
 1  /// <summary>
2 /// 网卡状态
3 /// </summary>
4 /// <param name="netWorkName">网卡名</param>
5 /// <returns></returns>
6 public bool NetWorkState(string netWorkName)
7 {
8 string netState = "SELECT * From Win32_NetworkAdapter";
9 ManagementObjectSearcher searcher = new ManagementObjectSearcher(netState);
10 ManagementObjectCollection collection = searcher.Get();
11 foreach (ManagementObject manage in collection)
12 {
13 if (manage["Name"].ToString() == netWorkName)
14 {
15 return true;
16 }
17 }
18 return false;
19 }
/// 得到指定网卡
 1  /// <summary>
2 /// 得到指定网卡
3 /// </summary>
4 /// <param name="networkname">网卡名字</param>
5 /// <returns></returns>
6 public ManagementObject NetWork(string networkname)
7 {
8 string netState = "SELECT * From Win32_NetworkAdapter";
9
10 ManagementObjectSearcher searcher = new ManagementObjectSearcher(netState);
11 ManagementObjectCollection collection = searcher.Get();
12
13 foreach (ManagementObject manage in collection)
14 {
15 if (manage["Name"].ToString() == networkname)
16 {
17 return manage;
18 }
19 }
20
21 return null;
22 }
 /// 开启网卡
 1  /// <summary>
2 /// 开启网卡
3 /// </summary>
4 public bool startNetWork()
5 {
6 if (NetWorkState(this.cmbNetWork.SelectedValue.ToString()))
7 {
8 if (!EnableNetWork(NetWork(this.cmbNetWork.SelectedValue.ToString())))
9 {
10 this.InsertLog("开启网卡失败!");
11 return false;
12 }
13 else
14 {
15 this.InsertLog("开启网卡成功!");
16 return true;
17 }
18 }
19 else
20 {
21 this.InsertLog("网卡己开启!");
22 return false;
23 }
24
25 //NetWorkList();
26 }

///关闭网卡

 1  /// <summary>
2 /// 关闭网卡
3 /// </summary>
4 public bool StopNewWork()
5 {
6 if (NetWorkState(this.cmbNetWork.SelectedValue.ToString()))
7 {
8 if (!DisableNetWork(NetWork(this.cmbNetWork.SelectedValue.ToString())))
9 {
10 this.InsertLog("禁用网卡失败!");
11 return false;
12 }
13 else
14 {
15 this.InsertLog("禁用网卡成功!");
16 return true;
17 }
18 }
19 else
20 {
21 this.InsertLog("网卡己禁用!");
22 return false;
23 }
24
25 //NetWorkList();
26 }

///日志记录

 1  /// <summary>
2 /// 日志记录
3 /// </summary>
4 /// <param name="msg"></param>
5 public void InsertLog(string msg)
6 {
7 if (this.richTextBox1.Lines.Count() > 100)
8 {
9 richTextBox1.Clear();
10 }
11 string str = String.Format("[{0}]--[{1}]-->{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), this.cmbNetWork.Text.Trim(), msg) + Environment.NewLine;
12 richTextBox1.Text = richTextBox1.Text.Insert(0, str);
13 }

///定时开启或者关闭

 1  private int startTime = 0;
2
3 /// <summary>
4 /// 定时开启或者关闭
5 /// </summary>
6 /// <param name="sender"></param>
7 /// <param name="e"></param>
8 private void timer1_Tick(object sender, EventArgs e)
9 {
10 if (startTime != time)
11 {
12 InsertLog((time-startTime - 1) +"秒后执行");
13 startTime++;
14 return;
15 }
16
17 startTime = 0;
18 if (_state == 0) //0表示开启状态,1表示关闭状态
19 {
20 if (this.StopNewWork())
21 {
22 _state = 1;
23 }
24 }
25 else
26 {
27 if (this.startNetWork())
28 {
29 _state = 0;
30 }
31 }
32 }

3.工程源文件下载

附件:工程源文件 http://files.cnblogs.com/files/JiYF/NetWorkCardConnect.rar

4.查看网卡名称

C#语言实现定时开启或禁用网卡小程序的更多相关文章

  1. C语言求1-1/3+1/5-1/7+...——小程序,大道理

    问题:用C语言编写程序求1-1/3+1/5-1/7+... 示例: #include <stdio.h> void main(){ ; ,a=; ){ sum=sum+n/a; n=-n; ...

  2. opensetting禁用后小程序二次授权的问题-以及根据定位城市获取天气

    一. 关于wx.openSetting 接口废弃后的通过其他方式重新设置权限的问题 最近小程序更新了后,导致以下报错 "openSetting:fail 此接口已废弃,请使用 OpenSet ...

  3. C语言的第二天-比较大小的小程序

    #include <stdio.h> int main() { int a,b,c,max; printf("请输入三个数:"); scanf("%d,%d, ...

  4. firefox 开启安全禁用端口

    firefox 开启安全禁用端口 step1: 在firefox地址栏键入 about:config step2: 新建字符串 network.security.ports.banned.overri ...

  5. linux下禁用网卡的启用网卡的一些方法

    第一种方法: 这种方法主要是在不重启的情况下会一直生效,适用于服务器. #禁用网卡eth0 sudo ifconfig eth0 down #启用网卡eth0 sudo ifconfig eth0 u ...

  6. 深入了解如何构建您的第一个多语言ASP。NET MVC 5 Web应用程序

    下载demo - 3.9 MB 介绍 这篇文章解释了如何创建一个简单的多语言ASP.NET MVC 5 Web应用程序.该应用程序将能够处理英语(美国),西班牙语和法语.英语将是默认语言.当然,扩展解 ...

  7. 基于php基础语言编写的小程序之计算器

    基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...

  8. 自动生成.py文件头部的C语言小程序

    每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...

  9. C语言学习笔记(一)_hello world程序中涉及的c语言元素

    #include <stdio.h> //使用printf函数之前必须include<stdio.h> int main() { int i; //声明一个变量 printf( ...

随机推荐

  1. 博文Contents<201--到000—>

    ====================================--------------------------------- 前言:博客中的随笔文章.并非都是笔者的原创文章.有些是听别人 ...

  2. Java集合之HashSet

    1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素.HashSe ...

  3. Excel—如何解决数组求和运算时行列不匹配产生的错误

    1.如下所示: 使用SUM对两个数组A1:B2,C1:E3进行运算时,由于行列不匹配返回了错误值. 2.可通过使用IFERROR进行解决. 对判断生成的错误值,通过用0替代进行解决. 3.除以上外,由 ...

  4. JSP的9大内置对象

    1.概述 JSP的这9个内置对象,都是servlet API实例,即在JSP页面内部,可以直接使用; ps:顺便说下JSP的4大范围: JSP的四种范围,分别为page.request.session ...

  5. Redis 缓存过期(maxmemory) 配置/算法 详解

    LRU(Least Recently Used) 最近最少使用算法是众多置换算法中的一种. Redis中有一个 maxmemory 概念,主要是为了将使用的内存限定在一个固定的大小.Redis 用到的 ...

  6. 【Android自学日记】使用DatePicker以及TimePicker显示当前日期和时间

    DatePicker 1.获取一个日历对象: Calendar cal=Calendar.getInstance(); 2.获取当前日期及时间: int year=cal.get(Calendar.Y ...

  7. Backbone源码学习之extend

    extend函数在backbone大概就20来行代码包括注释,对学习Javascript中"类"的继承很是好的学习资料. 下面先贴出Backbone中的源码,其中涉及到unders ...

  8. windows7 gvim 配置(好用)

    http://blog.csdn.net/anders_zhuo/article/details/8949003

  9. angularJS 服务-$provide里factory、service方法

    当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一定要早点意识到,controller 这一层应该很薄:也就是说,应用里大部分的业务逻辑和持久化 ...

  10. C#高级编程笔记2016年10月12日 运算符重载

    1.运算符重载:运算符重重载的关键是在对象上不能总是只调用方法或属性,有时还需要做一些其他工作,例如,对数值进行相加.相乘或逻辑操作等.例如,语句if(a==b).对于类,这个语句在默认状态下会比较引 ...