我需要使用windows api获取(或管道)已经运行的进程的输出.
基本上我的应用程序应该允许用户选择一个窗口来管道输入,所有输入都将显示在控制台中.我也会看看如何在stderr上获得一个管道.
重要提示:我没有使用CreateProcess()或其他方式启动该过程.该进程已在运行,我所拥有的只是进程的句柄(从GetWindowThreadProcessId()返回).
Ada*_*eld -10
无论你想做什么,你都做错了。如果您正在与拥有源代码的程序进行交互,请为您的 IPC 创建定义的接口:创建套接字、命名管道、Windows 消息传递、共享内存段、COM 服务器或任何您喜欢的 IPC 机制。不要尝试将 IPC 移植到不打算进行 IPC 的程序上。
您无法控制该进程的标准输出是如何设置的,并且它不是您可以乱搞的。它由其父进程创建并移交给子进程,从那里开始,它就由子进程控制。 你不会进去换别人家的地毯。
甚至不要考虑进入该进程,尝试CloseHandle
其标准输出,以及CreateFile
指向您的管道的新标准输出。这会导致灾难,并会导致古怪的行为和“不可能的”崩溃。
即使你可以做你想做的事,如果两个程序都这样做会发生什么?
归档时间: |
|
查看次数: |
6561 次 |
最近记录: |