由于增强的安全要求,为了在现代版本的 Windows 中使用 WM_COPYDATA 消息,您需要首先调用 ChangeWindowMessageFilter() 函数以 MSGFLT_ADD 将其添加到过滤器容限。
See MSDN ChangeWindowMessageFilter()
有没有办法查询它是否已经被允许(无需使用 SendMessage() 或 PostMessage() 等待并查看它是否通过)?
最佳答案
答案是肯定的。我在 MSDN 上对其进行了研究。
使用 ChangeWindowMessageFilterEx 而不是 ChangeWindowMessageFilter,后者无论如何都会被弃用。传入 pChangeFilterStruct 以包含扩展结果。参见 https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-changefilterstruct
查看 ExtStatus 是否包含值 MSGFLTINFO_ALREADYALLOWED_FORWND
关于c++ - 有没有办法查询消息过滤器是否已经生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58345736/