请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计451个文字,预计阅读时间需要2分钟。
c#include
int main() { printf(Hello, World!); return 0;}
1.c# 调用CMD窗体执行命令 阻塞执行, 并在最后执行完后一次性输出执行结果
public static string RunCmd(string cmd) { //string strInput = Console.ReadLine(); Process p = new Process(); //设置要启动的应用程序 p.StartInfo.FileName = "cmd.exe"; //是否使用操作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardInput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNoWindow = true; p.StartInfo.WindowStyle = ProcessWindowStyle.Normal; //启动程序 p.Start(); //向cmd窗口发送输入信息 p.StandardInput.WriteLine(cmd + "&exit"); p.StandardInput.AutoFlush = true; //获取输出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 p.WaitForExit(); p.Close(); return strOuput; //Console.WriteLine(strOuput); }
2. 调用CMD窗体执行命令 实时获取执行结果并输出
public string RunCmd(string cmd)
{
try
{
//string strInput = Console.ReadLine();
Process p = new Process();
//设置要启动的应用程序
p.StartInfo.FileName = "cmd.exe";
//是否使用操作系统shell启动
p.StartInfo.UseShellExecute = false;
// 接受来自调用程序的输入信息
p.StartInfo.RedirectStandardInput = true;
//输出信息
p.StartInfo.RedirectStandardOutput = true;
// 输出错误
p.StartInfo.RedirectStandardError = true;
//不显示程序窗口
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
//启用Exited事件
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(Process_Exited);
//启动程序
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.StandardInput.AutoFlush = true;
//输入命令
p.StandardInput.WriteLine(cmd);
p.StandardInput.WriteLine("exit");
//获取输出信息
// string strOuput = p.StandardOutput.ReadToEnd();
//等待程序执行完退出进程
//p.WaitForExit();
//p.Close();
// return strOuput;
return string.Empty;
}
catch (Exception ex)
{
throw ex;
}
}
private void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
Console.WriteLine(e.Data);
}
}
private void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
Console.WriteLine(e.Data);
}
}
private void Process_Exited(object sender, EventArgs e)
{
Console.WriteLine("命令执行完毕");
}
本文共计451个文字,预计阅读时间需要2分钟。
c#include
int main() { printf(Hello, World!); return 0;}
1.c# 调用CMD窗体执行命令 阻塞执行, 并在最后执行完后一次性输出执行结果
public static string RunCmd(string cmd) { //string strInput = Console.ReadLine(); Process p = new Process(); //设置要启动的应用程序 p.StartInfo.FileName = "cmd.exe"; //是否使用操作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardInput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNoWindow = true; p.StartInfo.WindowStyle = ProcessWindowStyle.Normal; //启动程序 p.Start(); //向cmd窗口发送输入信息 p.StandardInput.WriteLine(cmd + "&exit"); p.StandardInput.AutoFlush = true; //获取输出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 p.WaitForExit(); p.Close(); return strOuput; //Console.WriteLine(strOuput); }
2. 调用CMD窗体执行命令 实时获取执行结果并输出
public string RunCmd(string cmd)
{
try
{
//string strInput = Console.ReadLine();
Process p = new Process();
//设置要启动的应用程序
p.StartInfo.FileName = "cmd.exe";
//是否使用操作系统shell启动
p.StartInfo.UseShellExecute = false;
// 接受来自调用程序的输入信息
p.StartInfo.RedirectStandardInput = true;
//输出信息
p.StartInfo.RedirectStandardOutput = true;
// 输出错误
p.StartInfo.RedirectStandardError = true;
//不显示程序窗口
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
//启用Exited事件
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(Process_Exited);
//启动程序
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.StandardInput.AutoFlush = true;
//输入命令
p.StandardInput.WriteLine(cmd);
p.StandardInput.WriteLine("exit");
//获取输出信息
// string strOuput = p.StandardOutput.ReadToEnd();
//等待程序执行完退出进程
//p.WaitForExit();
//p.Close();
// return strOuput;
return string.Empty;
}
catch (Exception ex)
{
throw ex;
}
}
private void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
Console.WriteLine(e.Data);
}
}
private void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
Console.WriteLine(e.Data);
}
}
private void Process_Exited(object sender, EventArgs e)
{
Console.WriteLine("命令执行完毕");
}

