我需要使用
windows api获取(或管道)已经运行的进程的输出.
基本上我的应用程序应该允许用户选择一个窗口来管道输入,所有输入将显示在控制台中.我也会考虑如何在stderr之后得到一个管道.
重要提示:我没有使用CreateProcess()或其他方式启动该过程.该进程已经在运行,我所有的都是进程的句柄(从GetwindowThreadProcessId()返回).
无论你想做什么,你都做错了.如果您正在与具有源代码的程序进行交互,请为IPC创建一个定义的界面:创建一个套接字,一个命名管道,Windows消息传递,共享内存段,COM服务器或您所喜欢的IPC机制.不要尝试将IPC移植到不想做IPC的程序上.
你无法控制该进程的stdout设置,而不是你的混乱.它是由父母的过程创造的,并交给孩子,从那里开始,它控制着孩子. You don’t go in and change the carpets in somebody else’s house.
甚至没有想到进入这个过程,试图关闭它的stdout,并创建一个新的stdout指向你的管道.这是灾难的秘诀,会导致古怪的行为和“不可能”的崩溃.
即使你能做你想做的事,what would happen if two programs did this?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。