using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace AutoApk
{
/// <summary>
/// Cmd 的摘要说明。
/// </summary>
public class Cmd
{
private Process proc = null;
/// <summary>
/// 构造方法
/// </summary>
public Cmd()
{
proc = new Process();
}
/// <summary>
/// 执行CMD语句
/// </summary>
/// <param name="cmd">要执行的CMD命令</param>
public string RunCmd(string cmd)
{
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine(cmd);
proc.StandardInput.WriteLine("exit");
string outStr = proc.StandardOutput.ReadToEnd();
proc.Close();
return outStr;
}
/// <summary>
/// 打开软件并执行命令
/// </summary>
/// <param name="programName">软件路径加名称(.exe文件)</param>
/// <param name="cmd">要执行的命令</param>
public void RunProgram(string programName, string cmd)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = programName;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
if (cmd.Length != 0)
{
proc.StandardInput.WriteLine(cmd);
}
proc.Close();
}
/// <summary>
/// 打开软件
/// </summary>
/// <param name="programName">软件路径加名称(.exe文件)</param>
public void RunProgram(string programName)
{
this.RunProgram(programName, "");
}
}
}
Cmd c = new Cmd();
richTextBox1.Text = c.RunCmd(txtCmd.Text.Trim());
superai 发表于 2014-3-24 16:13
蘇飛啊~~有沒有辦法把控制台的輸出內容實時顯示在窗體的文本框上,而不用等控制台執行完了再顯示。實時輸出 ...
站长苏飞 发表于 2014-3-24 20:43
当然可以,用一个子线程时时获取数据并输出就行了
superai 发表于 2014-3-25 09:30
根据Process的方法,要等控制台结束才能获取到信息
中联软件 发表于 2014-3-25 16:22
好是挺好但运行ADB的命令有时就卡死或是没有返回不知道什么情况!
dong8023 发表于 2014-5-29 13:58
请问你那个构造函数什么作用?
joylyl2 发表于 2014-8-13 14:21
这是直接把整个cmd窗口的内容返回吗?要是内返回执行的结果就好了。以前处理这个是截取字符串的,不知道还 ...
Wellwillwell 发表于 2015-2-2 15:25
可以只获得执行结果嘛?就是那些版权和命令什么的都不用
大崽纸的大人 发表于 2018-4-14 17:36
执行CMD命令期间winform窗口会卡死,怎么解决呀
开线程去执行RunCmd么
sufeinet 发表于 2018-4-16 08:27
对开线程,想不卡就只能开线程解决
欢迎光临 苏飞论坛 (http://www.sufeinet.com/) | Powered by Discuz! X3.4 |