C++ 什么全局钩子可以用来防止覆盖窗口的非客户端区域?

C++ 什么全局钩子可以用来防止覆盖窗口的非客户端区域?,c++,windows,google-chrome,winapi,windows-shell,C++,Windows,Google Chrome,Winapi,Windows Shell,我的目标是防止将按钮(红色圆圈)插入进程的系统菜单: 我无法控制此过程,因此无法从内部对其进行修改 我想创建一个DLL,捕获并重新路由操作系统处理的以下消息,而不是进程本身:WM\u NCPAINT,WM\u ncbuttondown,WM\u NCHITTEST,WM\u NCACTIVATE(与实际相反的顺序) 我可以通过它的类名Chrome\u WidgetWin\u 1来隔离此进程的窗口,但我不确定是否要使用它来重新路由消息?在全局钩子中,您所要求的是不可能的。您不能像您描述的那样重新

我的目标是防止将按钮(红色圆圈)插入进程的系统菜单:

我无法控制此过程,因此无法从内部对其进行修改

我想创建一个DLL,捕获并重新路由操作系统处理的以下消息,而不是进程本身:
WM\u NCPAINT
WM\u ncbuttondown
WM\u NCHITTEST
WM\u NCACTIVATE
(与实际相反的顺序)


我可以通过它的类名
Chrome\u WidgetWin\u 1
来隔离此进程的窗口,但我不确定是否要使用它来重新路由消息?

在全局钩子中,您所要求的是不可能的。您不能像您描述的那样重新路由消息。您必须将代码注入目标进程本身,并使该代码直接子类化目标
HWND
,然后它可以绕过窗口的本机消息处理程序,直接将相关消息传递给
DefWindowProc()
。@RemyLebeau:非常感谢!你所要求的在全球范围内是不可能的。您不能像您描述的那样重新路由消息。您必须将代码注入目标进程本身,并使该代码直接子类化目标
HWND
,然后它可以绕过窗口的本机消息处理程序,直接将相关消息传递给
DefWindowProc()
。@RemyLebeau:非常感谢!