【发布时间】:2013-11-30 12:20:32
【问题描述】:
我有一个启动子进程的 Windows 控制台应用程序。 如何向子进程发送消息? 我找到了像PostMessage()/PeekMessage() 这样的函数——这就是我需要的,但据我所知,它在一个应用程序中使用,并使用 HWND 来识别目标窗口(我在应用程序中没有窗口)。 此外,我还阅读了有关 ipc 的材料,例如命名管道也需要 HWND。 我想要这样的东西:
[program 1]
int main()
{
CreateProcess(.., processInfo);
SendMessage(processId, message);
}
[program 2]
int main()
{
while(1)
{
// do thw work
Sleep(5 * 1000);
// check message
if(PeekMessage(message,..))
{
break;
}
}
}
子进程需要得到消息,它应该完成它的工作,而不是立即终止,而是完成当前的迭代。这就是为什么我不使用信号并且阻止“接收消息”也不合适的原因。
【问题讨论】:
-
已经找到 PostThreadMessage(),它有帮助!谢谢;)
标签: c++ winapi ipc windows-messages