免费咨询皮肤科专家,网站改版与优化协议书,网页设计个人网页代码,关于建设网站安全性合同发布日期#xff1a;2007.4.17 作者#xff1a;Anytao 2007 Anytao.com 转贴请注明出处#xff0c;留此信息。 下载#xff1a;[Anytao.IPHelper][代码下载#xff0c;近期上传] 本文将介绍以下内容#xff1a; • 批处理文件应用 • 调用外部应用 • 文件处理…发布日期2007.4.17 作者Anytao ©2007 Anytao.com 转贴请注明出处留此信息。 下载[Anytao.IPHelper][代码下载近期上传] 本文将介绍以下内容 • 批处理文件应用 • 调用外部应用 • 文件处理 1. 引言 经常在公司、客户和家里奔波切换IP是天天要做的事情所以有心开发一个小的应用程序来实现IP地址的快捷切换。既然有了思路就着手来做我首先想到的是应用netsh.exe工具来实现所以配置一个批处理文件来实现netsh.exe命令的执行然后使用.NET框架来调用bat文件即可大功告成。话已至此马上行动。 2. 基本原理 根据上述解决思路我的小系统定名为《Anytao.IpHelper》的解决方案如下 以批处理文件加载netsh.exe命令实现IP加载 以.NET的Process方法实现对外部应用的调用 附带进度控制和文件检索功能。 因此有必要对系统运行的原理进行简单的梳理来龙去脉揭开本质。 2.1. netsh工具简介 长篇大论的netsh命令介绍在此就不特别介绍了百度上随便就可以找到更加详细的netsh命令手册可以耗你一天的功夫来研究本文既然着眼于应用就从实际的招式来阐述详细的武功秘籍留待看官量身定做此处只提供参考netsh命令详解、netsh命令使用。 在本文中请参考以下步骤来实现你的netsh命令处理器 打开记事本输入以下信息 echo Anytao is switching your ip now.echo offnetsh interface ip set address 本地连接 static 172.1.1.226 255.0.0.0 172.30.7.254 1 netsh interface ip set dns 本地连接 static 200.121.5.1 echo www.anytao.comEcho Congratulations, done.pause 注意按照以上格式输入您的IP、子网掩码、默认网关和DNS服务器地址如果是英文版操作系统将“本地连接”改为“local Area Connection ”。 另存该文本为批处理文件在此另存为home.bat。 点击该批处理文件即可将您的IP更新为上述值。 2.2. Process方法简介 Process方法位于System.Diagnostics命名空间。MSDN的定义为Process 组件提供对正在计算机上运行的进程的访问。对于启动、停止、控制和监视应用程序等任务Process 组件是很有用的工具。使用 Process 组件可以获取正在运行的进程的列表或者可以启动新的进程。Process 组件用于访问系统进程。初始化 Process 组件后可使用该组件来获取有关当前运行的进程的信息。此类信息包括线程集、加载的模块.dll 和 .exe 文件和性能信息如进程当前使用的内存量。因此以Process方法来打开外部批处理文件是托管环境下值得推荐的方法。 当然以Process方法来打开外部程序并不是唯一的办法最简单的莫过于调用WinAPI程序来实现当然这又牵扯到非托管代码的范畴我们就不再多罗嗦了。 我的另一篇拙作《在WinForm应用程序中打开Url》中也有相关的论述具体的实现见代码部分的分析。 2.3. 基本的系统结构如下 3. 实现方法 3.1 创建Windows Form 应用程序设置程序名称为Anytao.IPHelper并向窗体文件中拖入一个ComboBox和一个按钮控件分别命名为cbbIP和btnIPConfig如下图所示 3.2 双击btnIpConfig按钮实现其Click事件如下具体代码见注释 private void btnIpconfig_Click(object sender, EventArgs e) { try { //使用Process方法加载外部应用 Process myProcess new Process(); myProcess.StartInfo.FileName Application.StartupPath \config\ cbbIP.SelectedItem.ToString() .bat; MessageBox.Show(myProcess.StartInfo.FileName); myProcess.StartInfo.UseShellExecute false; myProcess.StartInfo.RedirectStandardOutput true; myProcess.Start(); myProcess.WaitForExit(); } catch (FileNotFoundException ex) { MessageBox.Show(ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } } 3.3 当然我们还要实现程序加载时的获取文件目录的操作如下 private void frmMain_Load(object sender, EventArgs e) { //将配置文件加载到下拉框中 string path Application.StartupPath \config\; if (Directory.Exists(path)) { DirectoryInfo dirinfo new DirectoryInfo(path); foreach (FileInfo fi in dirinfo.GetFiles()) { cbbIP.Items.Add(Path.GetFileNameWithoutExtension(fi.FullName)); } } } 3.4 当然按照上述方法将配置好的netsh.exe批处理文件放在目标位置后你就可以实现自己的IpHelper了。 3.5 恭喜你简单的IPHelper已经实现运行你的程序享受快速配置IP带来的便捷吧。 4. 系统展望 Anytao.IpHelper只是点燃了一个快速应用的火苗我在平时的工作中也享受了这种方便的痛快我的Emma的机子里也必备了IpHelper就好像是我每天带给她的爱护和关心。嘿嘿写代码的也可以用这种方式哄哄家里的娘子军嘛让我们的程序人生更加和谐。 言归正传IpHelper只是个代步的工具还有更多的思想和设计可以融会到里面做为充实我将会再以后的时间逐渐完善以下几个方面 设计Ip、IpConfig类来以面向对象方式完善系统架构 增加Ip录入功能实现动态增加Ip选项的能力而不需要手工实现 更多桌面网络管理平台融合。 5. 结语后下载 本文的主要目的是以一个示例为切入点讲明白如何在托管环境中以Process方法来加载外部应用使用Process可以方便的在你的应用中打开网站、邮件、外部程序、脚本等因此是值得学习的东西。因为以开发为基础的文章是第一次尝试不知请大家见笑小小工具希望给您的生活带来方便。代码部分还要部分完善今日先提供程序部分代码部分我将于近日尽快上传请大家见谅希望这个小工具能给你带来方便。 下载[Anytao.IPHelper][代码下载近期上传] ©2007 Anytao.com 转贴请注明出处留此信息。 本贴子以“现状”提供且没有任何担保同时也没有授予任何权利。This posting is provided AS IS with no warranties, and confers no rights. 转载于:https://www.cnblogs.com/anytao/archive/2007/04/17/anytao_dev_01.html