设为首页 收藏本站
查看: 1025|回复: 0

C#重启网卡(支持xp和win7)

[复制链接]

尚未签到

发表于 2015-5-15 07:55:07 | 显示全部楼层 |阅读模式
  提示:
  XP使用的是:devcon.exe
  win7使用的是:netsh命令



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
//using System.Drawing;
using System.Linq;
using System.Management;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 自动启用网卡
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Thread tdNetWork=null;
private void Form1_Load(object sender, EventArgs e)
{
StreamReader sr=new StreamReader("C:\\PCI.txt");
string line;
if((line = sr.ReadLine()) != null)
{
tbNetWorkName.Text = line;
}
sr.Close();
GetPlatForm();//获取操作系统平台
        }
//获取系统版本
private void GetPlatForm()
{
OperatingSystem os = Environment.OSVersion;
switch (os.Platform)
{
case PlatformID.Win32Windows:
switch (os.Version.Minor)
{
case 0:
labelOS.Text = "Windows 95";
break;
case 10:
if (os.Version.Revision.ToString() == "2222A ")
labelOS.Text = "Windows 98 第二版";
else
labelOS.Text = "Windows 98";
break;
case 90:
labelOS.Text = "Windows Me";
break;
}
break;
case PlatformID.Win32NT:
switch (os.Version.Major)
{
case 3:
labelOS.Text = "Windows NT 3.51";
break;
case 4:
labelOS.Text = "Windows NT 4.0";
break;
case 5:
switch (os.Version.Minor)
{
case 0:
labelOS.Text = "Windows 2000";
break;
case 1:
labelOS.Text = "Windows XP";
break;
case 2:
labelOS.Text = "Windows 2003";
break;
}
break;
case 6:
switch (os.Version.Minor)
{
case 0:
labelOS.Text = "Windows Vista";
break;
case 1:
labelOS.Text = "Windows 7";
break;
}
break;
}
break;
}
}      
private void btnStop_Click(object sender, EventArgs e)
{
if (tdNetWork.IsAlive)
{
tdNetWork.Abort();
}
}
private void btnStart_Click(object sender, EventArgs e)
{
if (labelOS.Text == "Windows 7")
{
if (tbNetWorkName.Text == null)
{
MessageBox.Show("请填写好网卡名");
tbNetWorkName.Focus();
}
}
else
{
if (tbNetWorkName.Text == null)
{
MessageBox.Show("请填写好设备ID");
tbNetWorkName.Focus();
}
}
if (tdNetWork == null)
{
tdNetWork = new Thread(new ParameterizedThreadStart(startNetWork));
tdNetWork.IsBackground = true;
tdNetWork.Start(tbNetWorkName.Text);
}
}
//启用网卡
private void startNetWork(object NetWorkName)
{
while (true)
{
if (labelOS.Text == "Windows 7")
{
Execute(string.Format("netsh interface set interface \"{0}\" enabled", NetWorkName), 10);
}
else
{
Execute(string.Format("devcon enable PCI\\{0}*", NetWorkName), 10);
}
Thread.Sleep(5000);
}
}
///   
/// 执行DOS命令,返回DOS命令的输出  
///   
/// dos命令  
/// 等待命令执行的时间(单位:毫秒),  
/// 如果设定为0,则无限等待  
/// 返回DOS命令的输出  
public static string Execute(string command, int seconds)
{
string output = ""; //输出字符串  
if (command != null && !command.Equals(""))
{
Process process = new Process();//创建进程对象  
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";//设定需要执行的命令  
startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出  
startInfo.UseShellExecute = false;//不使用系统外壳程序启动  
startInfo.RedirectStandardInput = false;//不重定向输入  
startInfo.RedirectStandardOutput = true; //重定向输出
startInfo.CreateNoWindow = true;//不创建窗口
process.StartInfo = startInfo;
try
{
if (process.Start())//开始进程  
                    {
if (seconds == 0)
{
process.WaitForExit();//这里无限等待进程结束  
                        }
else
{
process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒  
                        }
output = process.StandardOutput.ReadToEnd();//读取进程的输出  
                    }
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
FileStream fs = new FileStream("C:\\PCI.txt", FileMode.Create);
//获得字节数组
byte[] data = new UTF8Encoding().GetBytes(tbNetWorkName.Text);
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
            fs.Flush();
fs.Close();
}
}
}
  参考文章:http://blog.chinaunix.net/uid-14388574-id-150699.html
  原创文章,转载请注明出处:http://www.iyunv.com/hongfei/archive/2013/04/15/3022708.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-67047-1-1.html 上篇帖子: Win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开” 下篇帖子: 在Win7旗舰版自带IIS7.5中调试.Net 4.0网站出现无厘头500错误的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表