c++ - 有没有办法查询消息过滤器是否已经生效?

标签 c++ windows winapi

由于增强的安全要求,为了在现代版本的 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/

相关文章:

c++ - 将 mp4 解码为原始帧 Windows C++

javascript - 像exe一样在Windows窗口中运行HTML页面

c++ - RAWINPUT 奇怪的行为

c# - 导出 C++ DLL 函数并导入 C#

c++ - 套接字接收错误数据

python - 安装 SOAPpy 模块的困难

c++ - 通过 C++ 运行外部 .exe

c++ - C++ 头文件如何包含实现?

c++ - Sprite 作为全局变量?

winapi - 为什么 Chrome 在插件失败时不会挂起?