C++ Windows钩子以捕获WM#U MDIVILE(使用良好的旧C+;+;)
我知道每个人都在从事伟大的移动或网络工作。嗯,我被困在一些好的老C++上了。这是困扰我的问题 当用户在另一个应用程序(在另一个进程中)中按下菜单“垂直平铺”时,我希望我的应用程序执行特定的操作。(许多应用程序都有一个菜单“窗口”,下面是一个子菜单“垂直平铺”)。我假设我需要使用SetWindowsHookEx设置一个全局钩子。我尝试使用“WH_CALLWNDPROC”来实现这一点,但只能连接到“进程内”消息,而不能连接到“进程外”。我也试过了。我试着捕捉WM_的大小,但这在过程中也不起作用。 事实上,即使在这个过程中,WM_大小并不是在所有窗口上都起作用,只是在其中一些窗口上起作用 现在有几个问题: 1-什么是正确的钩子类型(WH_CALLWNDPROC或WH_GETMESSAGE,或者可以使用的其他钩子类型之一) 2-如何让it接收进程外消息 3-我可以从哪里获得WM_MDITILE的示例钩子代码 4-我试着做了一个键盘挂钩,结果成功了,为什么不成功呢 5-我正在使用win 32 dll和下面的DllMain代码。有什么问题吗C++ Windows钩子以捕获WM#U MDIVILE(使用良好的旧C+;+;),c++,windows,hook,C++,Windows,Hook,我知道每个人都在从事伟大的移动或网络工作。嗯,我被困在一些好的老C++上了。这是困扰我的问题 当用户在另一个应用程序(在另一个进程中)中按下菜单“垂直平铺”时,我希望我的应用程序执行特定的操作。(许多应用程序都有一个菜单“窗口”,下面是一个子菜单“垂直平铺”)。我假设我需要使用SetWindowsHookEx设置一个全局钩子。我尝试使用“WH_CALLWNDPROC”来实现这一点,但只能连接到“进程内”消息,而不能连接到“进程外”。我也试过了。我试着捕捉WM_的大小,但这在过程中也不起作用。 事
HINSTANCE hinst;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
//
// Capture the application instance of this module to pass to
// hook initialization.
//
if (hinst == NULL)
{
hinst = hModule;
}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
有什么建议吗
谢谢也许你应该试试WH\u MSGFILTER或WH\u SYSMSGFILTER? 看起来这些ID专用于监视由于对话框、消息框、菜单或滚动条中的输入事件而生成的消息 有关更多详细信息,请参考以下链接: