Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# can';t从win32应用程序写入控制台应用程序_C# - Fatal编程技术网

C# can';t从win32应用程序写入控制台应用程序

C# can';t从win32应用程序写入控制台应用程序,c#,C#,我试图从C#win32应用程序控制控制台应用程序,控制台应用程序(oclHashcat-lite32)对我来说是未知的,我没有代码,直到现在我还不能在控制台应用程序中编写。我想编写任何命令(例如终止底层进程的“q”),但我的代码似乎没有编写控制台应用程序的输入。代码如下: StreamWriter processStreamWriter = OCLProcess.StandardInput; processStreamWriter.Write("q"); processStreamWriter

我试图从C#win32应用程序控制控制台应用程序,控制台应用程序(oclHashcat-lite32)对我来说是未知的,我没有代码,直到现在我还不能在控制台应用程序中编写。我想编写任何命令(例如终止底层进程的“q”),但我的代码似乎没有编写控制台应用程序的输入。代码如下:

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是简单而直接的。

没有足够的信息。。。你开始这个过程了吗?如果是,具体是什么(源代码)?