C# can';t从win32应用程序写入控制台应用程序
我试图从C#win32应用程序控制控制台应用程序,控制台应用程序(oclHashcat-lite32)对我来说是未知的,我没有代码,直到现在我还不能在控制台应用程序中编写。我想编写任何命令(例如终止底层进程的“q”),但我的代码似乎没有编写控制台应用程序的输入。代码如下:C# can';t从win32应用程序写入控制台应用程序,c#,C#,我试图从C#win32应用程序控制控制台应用程序,控制台应用程序(oclHashcat-lite32)对我来说是未知的,我没有代码,直到现在我还不能在控制台应用程序中编写。我想编写任何命令(例如终止底层进程的“q”),但我的代码似乎没有编写控制台应用程序的输入。代码如下: StreamWriter processStreamWriter = OCLProcess.StandardInput; processStreamWriter.Write("q"); processStreamWriter
StreamWriter processStreamWriter = OCLProcess.StandardInput;
processStreamWriter.Write("q");
processStreamWriter.Close();
我也试过使用
processStreamWriter.WriteLine("q");
而不是
processStreamWriter.Write("q");
但它没有起作用。有什么建议吗 IIRC,如果您将win32应用程序构建为GUI应用程序,则标准流不会链接到任何东西-StandardInput永远不会给您任何输入,StandardOutput将丢弃输出 我认为,解决这个问题的快速方法(在C语言中,是小题大做)是使用项目文件中的选项将GUI应用程序构建为控制台应用程序。控制台应用程序仍然可以使用所有普通的Win32 API,包括GUI API,因此它们仍然可以提供GUI风格的界面 但是,除非您真的想要对GUI应用程序的标准输入/输出进行I/O(与子控制台应用程序的标准输入/输出不同),否则您不需要它。有一种启动流程的方法,它为新启动的流程提供标准输入、标准输出和标准错误流的流句柄,因此您可以发送该流程将作为标准输入接收的输出等 顺便提一下,该链接还显示了
GetStdHandle(STD\u OUTPUT\u HANDLE)
和正在使用的类似调用
对不起,C的语法-我希望翻译成C是简单而直接的。没有足够的信息。。。你开始这个过程了吗?如果是,具体是什么(源代码)?