进程与ShellExecute之间的IPC

IPC between Processes with ShellExecute

本文关键字:IPC 之间 ShellExecute 进程      更新时间:2023-10-16

我正在C++中的win32api中工作。我有一个父进程,我正在使用它通过调用ShellExecute来运行一个新程序。

我希望子进程能够与父进程对话(通信只需要单向进行)。我认为匿名管道适合此操作,并且我已经找到了如何使用CreatePipe函数创建管道,但我不确定如何使用ShellExecute命令将管道提供给子进程。

有人能指出一个像样的/相关的教程吗?或者,如果另一种形式的IPC比管道更有效,请告诉我这个方向。

如果它相关,这就是我的shell execute命令的样子:

ShellExecute(NULL, "open", "Argo\argo.exe", NULL, NULL, 1);

在所有条件相同的情况下,Windows"命名管道"可能是一种理想的方式:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx

使用命名管道完全消除了在父母和孩子之间传递任何东西的需要:父母打开阅读,孩子随时打开写作,一切都是同步的,没有任何额外的工作。