由于经常要使用CMD的一些命令,比如查看IP,Ping一个网址之类的。于是就写了一个调用CMD.exe的小工具。

主要就是实现这样一个事情:调用CMD.exe然后传给它我想要执行的命令,最后获取结果。

界面:

代码:

主要执行代码using System.Diagnostics;
using System.IO;namespace Client
{class ExcuteCMD{static Process p = new Process();public static string Excute(string cmd){//创建Process对象p.StartInfo.FileName = "cmd.exe";          //要调用的程序 p.StartInfo.UseShellExecute = false;       //关闭Shell的使用 p.StartInfo.RedirectStandardInput = true;  //重定向标准输入 p.StartInfo.RedirectStandardOutput = true; //重定向标准输出 p.StartInfo.RedirectStandardError = true;  //重定向错误输出 p.StartInfo.CreateNoWindow = true;         //设置不显示窗口 p.Start();  //启动进程 p.StandardInput.WriteLine(cmd); //要执行的命令 p.StandardInput.WriteLine("exit");#region 吸收版权信息p.StandardOutput.ReadLine();p.StandardOutput.ReadLine();p.StandardOutput.ReadLine();p.StandardOutput.ReadLine();p.StandardOutput.ReadLine();#endregionstring strRst = p.StandardOutput.ReadToEnd();  //从输出流获取命令执行结果 // logOut(strRst,cmd); // 记录执行到日志文件return strRst;}public static void closeCMD(){p.Close();}private static void logOut(string log,string cmd){FileStream fs = new FileStream("log.txt", FileMode.OpenOrCreate, FileAccess.Write);StreamWriter sw = new StreamWriter(fs);sw.Flush();sw.BaseStream.Seek(0, SeekOrigin.End);sw.WriteLine(cmd + log);sw.WriteLine();sw.Flush();sw.Close();fs.Close(); }}
}

WPF界面代码using System.Windows;
using System.Windows.Input;namespace Client
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();tbCmd.Focus();}private void btnSubmit_Click(object sender, RoutedEventArgs e){lblResult.Content = ExcuteCMD.Excute(tbCmd.Text);            }private void btnClose_Click(object sender, RoutedEventArgs e){ExcuteCMD.closeCMD();this.Close();}private void btnPingQQ_Click(object sender, RoutedEventArgs e){lblResult.Content = ExcuteCMD.Excute("Ping www.qq.com");}private void btnIPConfig_Click(object sender, RoutedEventArgs e){lblResult.Content = ExcuteCMD.Excute("ipconfig");}private void tbCmd_KeyDown(object sender, KeyEventArgs e){if (e.Key == Key.Enter){btnSubmit_Click(sender, e);}}}
}

WPF界面代码<Window x:Class="Client.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="CMD命令执行工具" Height="300" Width="478" MinWidth="400" MinHeight="300" Icon="/Client;component/Images/21.ico"><Grid><Grid.RowDefinitions><RowDefinition Height="210*" /><RowDefinition Height="28*" /><RowDefinition Height="23*" /></Grid.RowDefinitions><Button Content="执行" Height="23" Margin="0,0,66,5" Name="btnSubmit" VerticalAlignment="Bottom" TabIndex="2" Click="btnSubmit_Click" HorizontalAlignment="Right" Width="60" Grid.Row="1" /><TextBox Height="23" Name="tbCmd" VerticalAlignment="Bottom" Margin="0,0,132,5" TabIndex="1" Grid.Row="1" KeyDown="tbCmd_KeyDown" /><Button Content="结束" Height="23" HorizontalAlignment="Right" Margin="0,0,0,5" Name="btnClose" VerticalAlignment="Bottom" Width="60" Click="btnClose_Click" Grid.Row="1" /><ScrollViewer HorizontalAlignment="Stretch" Name="scrollViewer1" VerticalAlignment="Stretch"><Label Height="Auto" Name="lblResult" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /></ScrollViewer><Button Content="PingQQ" Height="23" HorizontalAlignment="Left" Name="btnPingQQ" VerticalAlignment="Top" Width="56" Click="btnPingQQ_Click" Grid.Row="2" /><Button Content="IPConfig" Height="23" HorizontalAlignment="Left" Margin="62,0,0,0" Name="btnIPConfig" VerticalAlignment="Top" Width="56" Click="btnIPConfig_Click" Grid.Row="2" /></Grid>
</Window>

转载于:https://www.cnblogs.com/sitemanager/archive/2012/03/05/2380551.html

『C#基础』调用CMD的一个小工具相关推荐

  1. aspose 转pdf表格大小乱了_自己写了一个小工具类:pdf转word,没有页数和大小限制,保真!...

    昨天下午遇到一个问题,想把一个比较大的pdf转化为word,结果使用了各种工具都收费.想着干脆写一个小工具吧,一开始使用的python等等试了好几个网上的代码,结果全都失真.于是乎不得不花了一下午自己 ...

  2. 【python小项目】用python写一个小工具——番茄钟

    用python写一个小工具--番茄钟 最近听到朋友说在用番茄钟,有点兴趣也想下载一个来用用,后面仔细一想这玩意做起来也不难,索性自己顺手写一个算了,在这里也分享给大家了 一.功能简述 番茄钟即番茄工作 ...

  3. 制作一个小工具:自动生成“将特定枚举值转换成字符串的C++函数”的代码

    需求 假设我有一种枚举类型: enum fruit_type {apple,banana,orange, }; 我时常会遇到需要将枚举值转换为字符串的情况,即我需要如下的函数: const char* ...

  4. sql语句转linq的一个小工具

    http://sqltolinq.com/home sql语句转linq的一个小工具 转载于:https://www.cnblogs.com/fumj/archive/2012/12/20/28258 ...

  5. 介绍一个小工具 Linqer

    介绍一个小工具 Linqer 这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer. 哈哈,介绍一下使用方法吧: 官方下载网站:http://sqlto ...

  6. python登录网站下载excel_写了一个小工具,爬去指定网站的的登陆后的数据进行整理,可以正常登陆了,但是无法下载excel文件?...

    题目描述 我计划写一个小工具,爬取我账号里面的数据,采用requests登陆后,虽然可以正常登陆,但是无法下载里面Excel数据,麻烦大货帮我分析一下,怎么解决.我知道可能是权限问题,下载的时候需要带 ...

  7. 【开源一个小工具】一键将网页内容推送到Kindle

    http://www.zijinxing.com/201412/124636.html 最近工作上稍微闲点,这一周利用下班时间写了一个小工具,其实功能挺简单但也小折腾了会. 工具名称:Simple S ...

  8. 『0基础』Java快速入门必备秘籍

    Java之所以是大家最受欢迎的编程语言,是因为它在互联网中的使用非常广泛.随着互联网软件开发的进行,企业增加了更多的Java的岗位需求.因此,Java开发人员的工作机会增加了. 在入行Java之前,相 ...

  9. [日推荐]『开店快手』靠谱的开店小助手

    想开一个加盟店,装修成难题-- 装修流程繁琐复杂.设计师水平差强人意,怎么办? 材料价格参差不齐,装修过程频频出错,心好累!! 施工过程偷工减料,拖延工期,装修队伍资质存疑,水太深!!! 店面装修如此 ...

最新文章

  1. 早上起来收到两个消息
  2. Unity引擎与C#脚本简介
  3. elasticsearch_script_02
  4. QT VS环境安装后出现生成的程序can not start, can not find Qt pligins “windos“ 问题 2021-06-13
  5. 【原创】请避免GO语言中的携程空跑(CPU突然激增)
  6. php批量评价,彻底杜绝 WordPress 批量垃圾评论留言的三步曲
  7. win8oracle10g安装报错,Win8电脑安装Oracle 10g提示程序异常终止的解决方法
  8. LinuxShell笔记3 条件控制和流程控制
  9. PyTorch: 各种图像格式相互转化
  10. linux系统中find怎么用,Linux系统中查找命令find的使用方法(一)
  11. python model如何获取分类错误的数据_如何用python获取美股数据?
  12. 真格基金王强:判断一个项目好坏,我会做五个思考!
  13. 解析ES6箭头函数中的this
  14. css挪动背景块位置的属性,CSS 背景位置 background-position属性
  15. iphone/ipad 连接smb服务器,实现局域网内文件共享
  16. Flutter 与 RN对比
  17. 多图片拼图怎么操作?这个方法不要错过
  18. 曾经社交王者人人为何如今失魂落魄
  19. 用c语言录入3组学生数据编程,学生信息管理系统C语言编程
  20. 21和22端口 在java中的使用

热门文章

  1. css --- 伸缩布局,让图片居中
  2. ES5-5 参数默认值、递归、预编译、暗示全局变量
  3. 2017-5-4 进程
  4. SQLite轻量级数据库,操作数据常用语句
  5. SilverlightCMS开发之3经典三页面CMS浮现
  6. ARP防治攻略————服务器防护
  7. Insta360:从软到硬,一年做出360°全景相机,中间填了多少坑?
  8. 机械零点、MAM 文件 、 EMT标定原理
  9. 学习笔记(31):Python网络编程并发编程-定时器
  10. 总结从linux - windows 上(GCC与MSVC 2015) 移植C或者C++代码时候遇到的编译和链接问题