小编dea*_*ana的帖子

如何从一个Windows控制台应用程序向另一个发送消息?

我有一个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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

子进程需要获得消息,它应该完成其工作,而不是立即终止,而是完成当前迭代。这就是为什么我不使用信号并且阻止“接收消息”也是不合适的原因。

c++ winapi ipc windows-messages

5
推荐指数
1
解决办法
5767
查看次数

标签 统计

c++ ×1

ipc ×1

winapi ×1

windows-messages ×1