我有 2 个应用程序,一个是隐藏窗口(“hW”),另一个是控制台应用程序(“CA”),我想从中向 hW 发送命令。在控制台应用程序中,我得到了硬件句柄,这是一个问题:如果我正在运行:
PostMessage(hwnd, WM_QUIT, NULL, NULL);
一切正常,消息到达硬件并将其关闭。但是如果我要发送
PostMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)"texttext");
消息根本没有到达硬件。Spy++ 还显示消息没有到达硬件。WM_SETTEXT 有什么特定的东西可以防止它吗?提前致谢。
好的。在这里找到答案http://cboard.cprogramming.com/windows-programming/72589-wm_settext-postmessage.html
结果证明 API 试图保护我免受范围问题的影响;邮件消息() 总是以 WM_SETTEXT 或任何其他系统定义的消息失败 一个指针作为参数。这让我到了 SendMessage(),这不好, 因为我想要异步消息....
PPS
另外,看起来像
SendMessage(hwnd, WM_QUIT, NULL, NULL);
不针对应用程序做任何事情。即使在简单的测试应用程序中
HWND hNote;
if (!(hNote=FindWindow(L"Notepad",NULL)))
exit(1);
SendMessage(hNote, WM_QUIT, NULL, NULL);
尽管
PostMessage(hNote, WM_QUIT, NULL, NULL);
作品。
所有这些对我来说看起来都不合逻辑......是否有一些通用功能可以与任何类型的消息一起正常工作?