『C#基础』调用CMD的一个小工具

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

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

界面:

image

image

代码:

主要执行代码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();
            #endregion
            string 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值