У меня есть консольное приложение для Windows, которое запускает дочерний процесс. Как отправить сообщение дочернему процессу? Я нашел такие функции, как PostMessage()/PeekMessage() - это то, что мне нужно, но, как я понимаю, оно используется внутри одного приложения и использует HWND для определения целевого окна (у меня нет окон в приложении). Также я читал материалы о ipc, например, названные каналы также требуют HWND. я хочу что-то вроде этого:как отправить сообщение из одного приложения консоли Windows в другое?
[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'? – Paul
Уже найден PostThreadMessage(), это помогло! Спасибо ;) –