C#随手笔记——调用外部程序

工作中常常遇到这样的问题,一些被封装好的工具已经实现了我们某个步骤所需的功能,在不影响整体使用效果情况下,我们可以通过调用外部程序并执行相关操作来达成程序的目的。这里分享一个可以调用外部程序的方法,即using System.Diagnostics,C#中提供了这个命名空间下的Process类来实现调用其他程序的方法,了解cmd指令的朋友都清楚,作为Windows的Shell语言,cmd指令算是可以完成绝大多数的系统操作了,通过它来打开某个程序是我们的实现思路。


        // 调用CMD指令
        public void CMD(string command)
        {
            //定义好cmd进程
            Process p = new Process();
            p.StartInfo.FileName = "cmd.exe";//打开cmd
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;//是否允许输入
            p.StartInfo.RedirectStandardOutput = true;//是否允许输出
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;//是否显示cmd窗口,true为不显示

            p.Start();
            p.StandardInput.WriteLine(command);
            p.StandardInput.WriteLine("exit");//最后输入exit退出cmd
            p.StandardInput.AutoFlush = true;

            string result = p.StandardOutput.ReadToEnd();//获取执行结果
            p.WaitForExit();
            p.Close();

            Console.WriteLine(result);
            //return result;
        }

当然,通过cmd再来打开某个程序是不是显得多此一举呢,所以这个方法我写出来只是作为通用性的方法,cmd指令中有很多有意思的内容,比如远程映射,获取底层硬件配置等等,在参数command中传入相应的指令即可,大家可以自己多尝试。而直接打开一个程序的话我们可以这样简写:

        //调用外部程序
        private void openExternalProgram(string exeName)
        {

            var p = new System.Diagnostics.Process();
            p.StartInfo.FileName = exeName;
            p.Start();
            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
        }

打开程序之后我们再结合获取句柄及模拟键盘输入等一系列操作,“投机取巧”的获取我们想要的结果,后续我会继续更新相关的知识~对大家有帮助的话还希望点赞给个鼓励呢!

猜你喜欢

转载自blog.csdn.net/qq_35445058/article/details/81388085