加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

窗口 – 管道输出(stdout)从运行进程Win32Api

发布时间:2020-12-13 20:10:33 所属栏目:Windows 来源:网络整理
导读:我需要使用 windows api获取(或管道)已经运行的进程的输出. 基本上我的应用程序应该允许用户选择一个窗口来管道输入,所有输入将显示在控制台中.我也会考虑如何在stderr之后得到一个管道. 重要提示:我没有使用CreateProcess()或其他方式启动该过程.该进程已
我需要使用 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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读