C# 需要第二个输入的Winform执行命令行

C# 需要第二个输入的Winform执行命令行,c#,windows,C#,Windows,我使用下面的代码执行命令行,例如调用另一个应用程序 string strCmdText = @"gpg --recipient foo@mail.com --encrypt file-name.txt"; System.Diagnostics.Process.Start("CMD.exe",strCmdText); 我从windows服务中调用它。它没有抛出任何异常,但也不工作。如果我打开cmd并手动执行上面的命令,它将要求我在执行命令之前回答是/否问题。因此,我的问题是如何以编程的方式回答“

我使用下面的代码执行命令行,例如调用另一个应用程序

string strCmdText = @"gpg --recipient foo@mail.com --encrypt file-name.txt";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);

我从windows服务中调用它。它没有抛出任何异常,但也不工作。如果我打开cmd并手动执行上面的命令,它将要求我在执行命令之前回答是/否问题。因此,我的问题是如何以编程的方式回答“是/否”问题。

具体一点并添加“是/否”问题。您想要做的是与启动的流程交互。为此,需要重定向标准输入和输出流。试着搜索一下。或者就像@rene所说的那样……作为额外的论据,试着说“是”,在大多数问题上假设“是”。Start返回一个[处理对象与您刚启动的进程。将其存储在变量上,并使用其标准输出、标准输入属性读取任何提示并写入任何响应启动cmd.exe没有意义,您不妨直接启动gpg。但如果要使用cmd.exe,则可以使用/c选项通知它执行命令provi因此它必须是string strCmdText=@/c gpg等等;首先使用/k,以便可以看到任何错误消息。