SetWindowsHookEx 获取当前的HWND hwnd
在使用 SetWindowsHookEx 函数时,无法直接获取当前的 HWND hwnd。如果需要获取当前的窗口句柄,可以考虑使用以下方法:
-
在安装钩子的函数中,将当前的窗口句柄 hwnd 作为参数传入。
-
在钩子函数中,使用 GetForegroundWindow 函数获取当前活动窗口的句柄。
示例代码:
// 安装钩子
HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, hInstance, 0);
// 将当前窗口句柄 hwnd 作为参数传入
HWND hwnd = GetForegroundWindow();
SendMessage(hwnd, WM_HOOK_INSTALL, (WPARAM)hHook, 0);
// 钩子函数
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
// 获取当前活动窗口的句柄
HWND hwnd = GetForegroundWindow();
// 处理键盘消息
// ...
}
注意:GetForegroundWindow 函数获取的是当前活动窗口的句柄,而不是当前窗口的句柄。如果需要获取当前窗口的句柄,可以使用 GetActiveWindow 函数
原文地址: https://www.cveoy.top/t/topic/hgmb 著作权归作者所有。请勿转载和采集!