html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

C#调用DOS命令方法_.NET教程_编程技术

[ ] 已经帮助:人解决问题

C#调用DOS命令
我想编一个汇编语言编辑器,但在调用masm.exe的时候,无法得到它的运行信息。代码如下:
Process p = new Process();
p.StartInfo .WorkingDirectory ="e://";
p.StartInfo.FileName = "masm.exe";
p.StartInfo.Arguments="test.asm;";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start ();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit ();
//textBox1.Text="aaa";
textBox1.Text =output;

textBox1没有问题,显示别的可以,但是显示不出来运行时屏幕上显示的信息,只是一片空白。
而且,当我在系统下运行cmd进入dos时,运行masm test.asm; 有时候无任何显示,有时候却有编译信息,不知道为什么。运行其它可执行文件也出现过这样的情况。不知道和上面的问题有没有联系呢?

 

命令就确实没有输出。

Process p = new Process();
p.StartInfo .WorkingDirectory ="c://";
p.StartInfo.FileName = "ping.exe";
p.StartInfo.Arguments="www.sina.com.cn";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start ();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit ();
MessageBox.Show(output);

 

C#中运行DOS命令如何隐藏DOS界面
一、.NET:
p = new Process();
p.StartInfo.FileName = "cmd.exe";
// 这里是关键点,不用Shell启动/重定向输入/重定向输出/不显示窗口
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine("ping 127.0.0.1");// 向cmd.exe输入command
p.StandardInput.WriteLine("exit");
p.WaitForExit(60000);
string s = p.StandardOutput.ReadToEnd();// 得到cmd.exe的输出
p.Close();
?
二、win32:
STARTUPINFO si;//这里的含义太多就不一一说了,自己查msdn吧
si.cb = sizeof(si);
CreateProcess( "cmd.exe" , NULL , NULL , NULL , FALSE , CREATE_NO_WINDOW , NULL , NULL , &si , NULL );

 

 

 

 

 

 

c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序

加入参数 "/c " + 要执行的命令来执行一个dos命令
(/c代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe)

1 private string RunCmd(string command)
2 {
3 //例一Process,一立程
4 Process p = new Process();
5
6 //Process有一StartInfo性,是ProcessStartInfo,包括了一些性和方法,下面我用到了他的性:
7
8 p.StartInfo.FileName = "cmd.exe"; //定程序名
9 p.StartInfo.Arguments = "/c " + command; //定程式行
10 p.StartInfo.UseShellExecute = false; //Shell的使用
11 p.StartInfo.RedirectStandardInput = true; //重定向入
12 p.StartInfo.RedirectStandardOutput = true; //重定向出
13 p.StartInfo.RedirectStandardError = true; //重定向出
14 p.StartInfo.CreateNoWindow = true; //置不示窗口
15
16 p.Start(); //
17
18 //p.StandardInput.WriteLine(command); //也可以用方式入要行的命令
19 //p.StandardInput.WriteLine("exit"); //不要得加上Exit要不然下一行程式行的候
20
21 return p.StandardOutput.ReadToEnd(); //出流取得命令行果
 

 

hFDHTML5中文学习网 - HTML5先行者学习网
hFDHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助