c# - 捕获外部进程输出

标签 c# java c++ process stdout

不要将其作为重复项关闭,因为我对类似问题有细微但重要的更改:

是否可以在 java 中捕获外部进程(即 stdout)的输出,当我没有创建进程,而我只知道进程名称?

我在 Windows 7 上运行。

编辑:

如果有其他语言 (C#\C++) 可以做到这一点,那么我可以编写一个捕获输出的“CaptureOutput”程序,写入标准输出,然后在我的 Java 代码中启动“CaptureOutput”并读取它的标准输入。

丑陋,但可能有效。

所以我也可以用其他语言回答。

最佳答案

首先让我说你的要求打破了进程隔离的所有规则。 如果您的进程没有创建您要捕获其输出的进程,并且您也无权修改调用进程(命令 shell?服务管理器?您还没有说哪个)。然后,您唯一的机会(充其量是一个渺茫的机会)是将一个线程注入(inject)进程,并在其所有其他线程挂起时更改全局标准输出(和标准错误?)。这只能由对目标进程具有完全访问权限的进程来完成。对正在运行的过程执行此类手术并不适合胆小的人。

关于c# - 捕获外部进程输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760186/

相关文章:

c# - 当前一个文件大于文件限制时,如何让 log4net 创建一个新文件?

java - 我怎样才能得到 HttpResponseException 背后的实际错误?

c++ - 使用 WASAPI 录制音频流

c# - 如何在 Visual Studio 2017 中使用 VersionControlEx?

c# - 如何在 UWP 中做三角按钮?

c# - Specflow 正则表达式匹配 - 定义重载

java - 为什么 Toast 会跳到此循环中的最后一个元素?

java - 如何从头开始创建 Apple Keynote 演示文稿?

c++ - setRawHeader 不遵循 WebView 中的元素

c++ - 从 1-6 中选择 random() 数字