当前位置:编程学习 > C#/ASP.NET >>

c# 如何调用外部exe程序 并获取exe程序的返回内容呢?

通过下面的代码可以执行dos命令,并获取到返回值,但我要执行的命令是调用一个exe命令行下的程序,这个命令行下的程序会返回一些内容,但这样写获取不到命令行下程序的返回结果,  该怎么弄呀

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardInput = true;
process.Start();

process.StandardInput.WriteLine(strcms);
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine("exit");
process.WaitForExit();

return process.StandardOutput.ReadToEnd(); --------------------编程问答-------------------- 上面的代码可以获取dos命令的返回内容,比如ping 命令 都没问题,但调用命令行下的程序 就获取不到命令行下程序的返回内容,  晕 。。。。。。。 --------------------编程问答-------------------- process.StandardInput.WriteLine(strcms + " > C:\\1.txt");
看看这样 --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
process.StandardInput.WriteLine(strcms + " > C:\\1.txt");
看看这样


还是看不到命令行下程序的返回内容, 我算总结出来了  dos自带的命令都能得到返回值,非dos自带的就获取不到返回值  --------------------编程问答-------------------- ping 命令本身是可以保存为文件,你试试这种类似的命令看看:
ping  www.163.com -t >>d:\a.txt

--------------------编程问答-------------------- 像Winform之类的程序,尤其是控制台程序

        static void Main(string[] args)
        {
        }

他的返回值是void,为空,所以你得不到什么返回值的。
这个也是看程序了
--------------------编程问答--------------------
引用 5 楼 wpfLove 的回复:
像Winform之类的程序,尤其是控制台程序

        static void Main(string[] args)
        {
        }

他的返回值是void,为空,所以你得不到什么返回值的。
这个也是看程序了


但那个命令行的程序 在dos下运行的的确确有返回内容的。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,