C#语言实现定时开启或禁用网卡小程序

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.查看网卡名称

时间: 2024-08-27 18:00:12

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

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

问题:用C语言编写程序求1-1/3+1/5-1/7+... 示例: 1 #include <stdio.h> 2 void main(){ 3 int n=1; 4 float sum=0,a=1; 5 while(a<=100){ 6 sum=sum+n/a; 7 n=-n; 8 a=a+2; 9 } 10 printf("%f\n",sum); 11 } 分析: 数列的求和问题,每一项正负交替,并且分母递增2. 首先,这是一个加法(累加)问题,涉及到被加数,加数,

从语言学习实例第二天(简单小程序)

计算三角形面积 没有考虑构不成三角形 考虑完全 另外自我解惑 %f是用于格式化输入输出函数,对应类型为float的格式字符.加数字的情况仅适用于输出函数,比如printf. 其形式为 printf("%a.bf", var); 其中a,b为常数. 含义为: 1 a, 代表输出占|a|(a的绝对值)个字节的宽度,当实际宽度超过a时,按实际宽度输出,否则输出a个字节,不足部分补空格.  如果a为正数,输出的有效数字在右侧,左侧补空格. 如果a为负数,输出的有效数字在左侧,右侧补空格. 2 

云计算之路-阿里云上:消灭“黑色n秒”第三招——禁用网卡的TCP/IP Offload

程咬金有三板斧,我们有三招.在这篇博文中我们要出第三招,同时也意味着昨天在"希望的田野"上的第二招失败了. 前两招打头(CPU)不凑效,这一招要换一个部位,但依然要坚持攻击敌人最弱(最忙最累)部位的原则.那除了CPU,最忙最累的部位是哪里呢?对于Web服务器来说,毫无悬念,当然是网卡.而且阿里云的云服务器,所有的网络负载都集中在一块内网网卡上,SLB(负载均衡)用它,OCS(缓存服务)用它,RDS(数据库服务)也用它.所以,就对它出招! 招式受这篇博文(XenServer – Wind

C++教程:C语言定时关机小程序

今天给大家带俩一个C语言小程序的分享,需要实际应用的作用不大,但是,绝对是对你有帮助的!今后小编都会定期发布一些:一个C语言小程序源码+注释+解答,来丰富大家的知识! #include<stdio.h> #include<string.h> #include<stdlid.h> void main() { char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system(&q

Linux 中如何启用和禁用网卡(不是很全面但是很好用)

启用禁用网卡可以使用以下方法来完成: ifconfig 命令:用于配置网卡,可以提供网卡的很多信息. ifconfig 的常用语法: # ifconfig [NIC_NAME] Down/Up 执行以下命令禁用 enp0s3 网卡. # ifconfig enp0s3 down 执行以下命令启用 enp0s3 网卡. # ifconfig enp0s3 up ifdown/up 命令:ifdown 命令用于禁用网卡,ifup 命令用于启用网卡. ifdown/ifup 的常用语法: # ifdo

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

#include <stdio.h> //使用printf函数之前必须include<stdio.h> int main() { int i; //声明一个变量 printf("hello world\n");//printf是c语言的库函数 return 0; } 1.1  #include <stdio.h> include是告诉编译器,包含一个头文件. 在C语言当中任何库函数调用都需要提前包含库函数. 1.2  main函数 main函数是C语

S1/C#语言和数据库技术基础/01-第一个C#程序

执行C#应用程序时,可以使用.NET Framework提供的以下快捷键. F5:启动. Ctrl+F5:开始执行不调试. Ctrl+Atl+L:显示解决方案资源管理器,或者点开菜单栏选择“工具”→“选项”选项对话框,在左边选择“项目和解决方案”选项,在右边勾选“总是显示解决方案”复选框即可. 认识C#程序 namespace关键字,namespace(命名空间)是C#中组织代码的方式,它的作用类似java中的package(包),这样我们就可以把紧密相关的一些代码放在同一个命名空间中,大大提高

Linux下简单C语言小程序的反汇编分析

韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOOC相关课程而写的作业,如有疏漏,还请指出. 选了一门Linux内核分析课程,因为阅读内核代码中或多或少要涉及到At&T汇编代码的阅读,所以这里写下一个对一个简单C命令行程序的反汇编分析过程,一方面完成作业,另一方面当作练手.下面开始: 1.编写我们的C语言小程序 这里我们使用简单的例子,代码如下: 1

小程序门店自提功能开启,酷客多带你玩转O2O模式

目前小程序的发展已经如火如荼,不管是新型行业还是传统行业,都进军小程序领域,由此为广大消费者带来了方便与快捷,现在许多商家品牌将线上线下结合互动起来,推广门店自提的模式,酷客多小程序(http://www.kukeduo.cn)这周推出了门店自提功能,这对于商家和消费者来说都是一个大大的惊喜. 门店自提究竟给商家和消费者带来什么便利呢?酷客多小程序来给你分析分析.首先这一功能将点对点的配送简化成点对店的配送,避免了二次或多次配送,减少了配送成本.尤其是在交通复杂.堵塞的城市:节约了顾客等待时间,