图形化命令行工具:

很多专业的配置工具都不提供UI工具,只提供命令行操作,如很多网络设施的配置等。命令行工具具有输入效率高、批量运行等优点,但是对于使用者的专业要求较高,而且,大量的指令输入,对记忆力也是一个考验。

事实上,我们可以借助.net,将某些常用的命令图形化,这样既方便了使用,也减少了输入大量命令的负担。

我们主要使用System.Diagnostics.Process和System.Diagnostics.ProcessStartInfo两个类。

我们新建一个WPF的简单窗体,包含两个文本框,分别用于显示Input和Output信息,然后添加几个命令按钮,注册按钮事件响应:

            var runProcess = new Process();
            string cmd = "ping 10.10.10.2";
            var config = new ProcessStartInfo("cmd.exe"); //执行的程序,这里是cmd.exe命令行工具
            config.RedirectStandardInput = true;  //重定向命令行的输入流,以便我们可以通过程序输入命令以模仿手工输入
            config.RedirectStandardOutput = true;  //输出流重定向,保证可以获取命令行执行命令后的输出结果
            config.UseShellExecute = false;  //不显示命令行运行窗口?
            config.CreateNoWindow = true;  //不显示命令行运行窗口  
            runProcess.StartInfo = config;
            runProcess.OutputDataReceived += runProcess_OutputDataReceived;  //注册输出流事件,一旦命令行输出信息,可以从中取出信息
            runProcess.Start();
            runProcess.StandardInput.WriteLine(cmd); //输入各种控制命令
            runProcess.BeginOutputReadLine();  //开始读取输出信息。这是个关键的步骤,否则不触发任何输出事件

接下来,就是简单的输出事件订阅:

        void runProcess_OutputDataReceived(object sender, DataReceivedEventArgs e)
        {
            Dispatcher.BeginInvoke(new Action(() => output.Text += e.Data));
        }

可以看到,仅仅是从DataREceivedEventArgs中的Data获取输出字符串。注意,事件执行程序是在其他线程中运行的,在诸如WINFORM和WPF等STA程序中,必须封送消息到UI线程上,WPF中就是使用Dispatcher.Invoke(Action)方法。

如图所示,运行效果。这样,我们可以封装很多常用的命令到图形界面,便于非专业人员的使用。

时间: 2024-08-29 12:44:08

图形化命令行工具:的相关文章

x264源代码简单分析:x264命令行工具(x264.exe)

本文简单分析x264项目中的命令行工具(x264.exe)的源代码.该命令行工具可以调用libx264将YUV格式像素数据编码为H.264码流. 函数调用关系图 X264命令行工具的源代码在x264中的位置如下图所示. 单击查看更清晰的图片 X264命令行工具的源代码的调用关系如下图所示. 单击查看更清晰的图片 从图中可以看出,X264命令行工具调用了libx264的几个API完成了H.264编码工作.使用libx264的API进行编码可以参考<最简单的视频编码器:基于libx264(编码YUV

[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 http://www.cnblogs.com/yubinfeng/p/5182271.html 本篇导读: 上篇介绍了一款Windows环境下的Git服务器工具GitStack ,搭建了最简单的Windows下的Git服务器,需要再次提醒的是

28 个必备的 Linux 命令行工具

28 个必备的 Linux 命令行工具 dstat& sariostat, vmstat, ifstat and much more in one.slurm网络流量图形化工具vim&emacs这个没人不知道吧~screen, dtach,tmux, byobu保持你的终端连接活跃.multitail在不同的窗口查看日志文件.t... dstat & sar iostat, vmstat, ifstat and much more in one. slurm 网络流量图形化工具 v

7.0、Android Studio命令行工具

命令行工具分成SDK工具和平台工具. SDK工具 SDK工具跟随SDK安装包安装并随时更新. Virtual Device 工具 1. Android Virtual Device Manager 提供了一个图形化的图形用户接口,你可以创建和管理运行在Android虚拟机中的AVD. 2. Android Emulator 基于QEMU的设备虚拟机,允许你在实时的Android运行环境中调试和测试你的应用. 3. mksdcard 帮助你创建一个磁盘镜像 Development 工具 1. Hi

显示器 Linux 性能 18 (一个命令行工具传递)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因.我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每一个Linux/Unix 系统管理员的工作.这些命令行工具能够在各种Linux系统下使用.能够用于监控和查找产生性能问题的解决办法.这个命令行工具列表提供了足够的工具.您能够挑选适用于您的监控场景的工具. 1.Top-Linux进程监控

监控 Linux 性能的 18 个命令行工具

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具. LitStone翻译于 2个月前 3人顶

监控 Linux 性能的 18 个命令行工具(转)

对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具. 1.Top-Linux进程监控 Linux

JSON在线编缉器命令行工具-解放你的双手

对于JSON这种明星来说,哪哪儿都有对TA无微不至的关怀.各种IDE里已经成了标配.各种在线工具也是体贴入微,该有的功能都有了. 但对于我这种懒人来说,这还是不够简单,还是太麻烦: 1:打开本地文件,我还得双击或者右击打开文件. 2:打开了后还得拷贝 3:拷贝好后还得打开网站(首先我得记得住),然后再粘贴到线上编缉器 整修流程还是太繁琐,有没有一种方法,或者一条命令,让我一下子把这些事全都帮我干了? 当然有,下面为大家推荐一个好用的命令行工具: 官方 NPM package 安装:npm ins

MariaDb数据库管理系统学习(二)使用HeidiSQL数据库图形化界面管理工具

HeidiSQL 是一款用于简单化的 MySQL 服务器和数据库管理的图形化界面.该软件允许你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等.此外,你可以从文本文件导入数据,运行 SQL查询,在两个数据库之间同步表以及导出选择的表到其它数据库或者 SQL 脚本当中.HeidiSQL 提供了一个用于在数据库浏览之间切换 SQL 查询和标签带有语法突出显示的简单易用的界面.其它功能包括BLOB 和 MEMO 编辑,大型 SQL 脚本支持,用户进程管理等.该软件资源开放. MariaDB安装