c#是否可以使用OS shell写入进程?

时间:2015-05-26 18:26:56

标签: c# shell

在C#中,您可以使用ProcessStartInfo类创建新进程。此类具有属性UseShellExecute,必须将其设置为false才能重定向标准输入和标准输出。

如果此属性设置为true,那么OS shell应该启动该过程。

这很方便,因为标准输出已经按照我想要的方式传送到屏幕。因此,我很好奇是否可以使用任何其他方法写入流程。如果shell正在处理屏幕输出,那么我是否可以让shell获取我想要的输入命令?

我知道我可以自己重定向标准输出和标准输入,但看到输出已经被shell处理得很好,我一直想知道是否有更简单的方法。

1 个答案:

答案 0 :(得分:2)

听起来你希望能够写入进程,同时允许shell写入进程。

这引入了很多订购问题,因此是不允许的。

但是,您可以将UseShellExecute设置为true,但将RedirectStandardOutput保留为false,以避免必须处理程序的输出。您需要将RedirectStandardInput设置为true并处理您的程序输入到程序中。

请记住,通过手动执行管道,所有同步问题都会消失,因为您有机会控制数据何时流过。在最简单的情况下,您想要运行程序,输入一些数据,然后让用户控制,您可以确保用户不会意外地妨碍您的自动化。