Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过c从正在运行的应用程序运行命令行#_C#_Command Line - Fatal编程技术网

C# 通过c从正在运行的应用程序运行命令行#

C# 通过c从正在运行的应用程序运行命令行#,c#,command-line,C#,Command Line,我到处找了,没有找到任何有用的东西( 我想要的是让我的C#应用程序对正在运行的进程执行命令。这个正在运行的进程是一个控制台应用程序,我只需要输入命令“重新启动”。我的尝试是: Process[] processes = Process.GetProcessesByName("OpenSim.32BitLaunch"); foreach (Process p in processes) { p.StandardInput.WriteLine("restart"); } 你应该写信给。而不

我到处找了,没有找到任何有用的东西(

我想要的是让我的C#应用程序对正在运行的进程执行命令。这个正在运行的进程是一个控制台应用程序,我只需要输入命令“重新启动”。我的尝试是:

Process[] processes = Process.GetProcessesByName("OpenSim.32BitLaunch");

foreach (Process p in processes)
{
   p.StandardInput.WriteLine("restart");
}
你应该写信给。

而不是

Console.WriteLine("restart");
使用

感谢你们的帮助:)我已经设法用setForeGroundIndow和SendKeys解决了这个问题。 就像这样(记住先导入相应的dll):


仅仅因为您在流程中循环,这并不意味着循环中的任何语句都在对流程做任何事情。Console.WriteLine将文本写入标准输出,与
p
无关。表示不可开票的membet不能像方法一样使用:(尝试了StandardInput.WriteLine(“重新启动”);但得到了一个执行选项:(在您的帮助下…我得到了InvalidOperationException未处理..StandardIn未重定向HMMM所以您是说我不能做我想做的事?尝试了StandardInput.Writeline(“重新启动”);但得到了一个执行选项..StandardIn未重定向:(
p.StandardInput.WriteLine("restart");
System.Diagnostics.Process process = Process.GetProcessesByName("OpenSim.32BitLaunch")[0];

        Process[] processes = Process.GetProcessesByName("OpenSim.32BitLaunch");

        foreach (Process p in processes)
          {


              SetForegroundWindow(p.MainWindowHandle);
              Thread.Sleep(1000);
              SendKeys.SendWait("quit");
              Thread.Sleep(1000);
              SendKeys.SendWait("{ENTER}");

          }