我正在通过 C# System.Diagnostics.Process 运行命令行进程。
当我在 cmd.exe 中输入相同的命令时,它会立即提示我输入密码。在我输入密码后,该过程继续完成。
但是,使用 System.Diagnotic.Process,我重定向的标准输出都不会产生密码提示。如果是这样,我将使用重定向的标准输入的 WriteLine 方法以编程方式输入它。
使用 Process 对象在输出中看不到提示是不是很常见?提示是否与其他标准输出行不同?如果是这样,如何将“prompt-events”引入我的应用程序,输入输入,然后让进程以与在 cmd.exe 中相同的方式进行?
最佳答案
当您重定向用 C/C++ 编写的程序的输出时,stdout 流切换到缓冲模式。提示就在那里,它从来没有从内部缓冲区刷新到流中,因为缓冲区没有被填满。只需输入密码就可以解决您的问题。
https://stackoverflow.com/questions/2053467/