c# - 如何使用 C# System.Diagnostics.Process 与提示交互?

我正在通过 C# System.Diagnostics.Process 运行命令行进程。

当我在 cmd.exe 中输入相同的命令时,它会立即提示我输入密码。在我输入密码后,该过程继续完成。

但是,使用 System.Diagnotic.Process,我重定向的标准输出都不会产生密码提示。如果是这样,我将使用重定向的标准输入的 WriteLine 方法以编程方式输入它。

使用 Process 对象在输出中看不到提示是不是很常见?提示是否与其他标准输出行不同?如果是这样,如何将“prompt-events”引入我的应用程序,输入输入,然后让进程以与在 cmd.exe 中相同的方式进行?

最佳答案

当您重定向用 C/C++ 编写的程序的输出时,stdout 流切换到缓冲模式。提示就在那里,它从来没有从内部缓冲区刷新到流中,因为缓冲区没有被填满。只需输入密码就可以解决您的问题。

https://stackoverflow.com/questions/2053467/

相关文章:

apache - 在 ReverseProxy 上下文中切换 SSLVerifyClient

modeling - Data Vault 模型什么时候是数据仓库的正确模型?

ruby-on-rails - rails : Expected helper to define

php - CakePHP displayField 用法

c# - 以特定时间间隔从视频(mpg、wmv 等)中捕获帧

visual-studio-2008 - 如何在同一解决方案的不同项目中使用相同的obj文件

sql-server - SQL 错误 : Verify that the instance nam

python - 压缩存档,可快速访问单个文件

erlang - Erlang 中的尾递归

linq-to-sql - linq如何决定内部连接和外部连接