在使用 SetWindowsHookEx 函数时,无法直接获取当前的 HWND hwnd。如果需要获取当前的窗口句柄,可以考虑使用以下方法:

  1. 在安装钩子的函数中,将当前的窗口句柄 hwnd 作为参数传入。

  2. 在钩子函数中,使用 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 函数

SetWindowsHookEx 获取当前的HWND hwnd

原文地址: https://www.cveoy.top/t/topic/hgmb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录