我有一个监控标准输入的Windows进程。
stdin = GetStdHandle(STD_INPUT_HANDLE);
我正在使用WaitForMultipleEvent等待stdin,我正在使用ReadConsoleInput进行读取。
当我从Windows终端(cmd.exe)运行我的进程时,它非常有效。 我的过程可以看到我正在输入的各种字符。
到目前为止,非常好。
我有一个Java进程生成我的Win32可执行文件并尝试写入它。我的Windows进程检测到NOTHING。 这是一个Java代码段:
Process p = Runtime.getRuntime().exec(cmdarray);
writer = new OutputStreamWriter(p.getOutputStream());
writer.append("quit"); //$NON-NLS-1$
writer.flush();
Java完美地产生了我的过程。但是,WiN32进程从未收到任何信息。 (我试图从Linux进程监视stdin:在这种情况下,它可以工作,所以我的Java代码可能是正确的。这就是我在Windows上监视stdin与Java“适合”的方式......)
有什么想法吗?
答案 0 :(得分:0)
SetConsoleMode(stdin,0); 使用ReadFile而不是ReadInputConsole。