在dll的键盘钩子里如何得到当前按键窗口的句柄? 如题 谢谢大家的回答 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetActiveWindow,键盘输入对应的是Active Window。 你的键盘钩子是通过什么实现的啊,一般在钩子消息里都有窗口的HWND。 HOOK函数是:LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam){ if(nCode < 0 || nCode == HC_NOREMOVE) return ::CallNextHookEx(g_hHook, nCode, wParam, lParam); if(lParam & 0x40000000) { return ::CallNextHookEx(g_hHook, nCode, wParam, lParam); } if (wParam == VK_NUMPAD8) { ::SetForegroundWindow(g_hWndCaller); // 此处不知道如何得到按键窗口句柄???? keybd_event('S', 0, 0, 0); keybd_event('S', 0, KEYEVENTF_KEYUP, 0); } return ::CallNextHookEx(g_hHook, nCode, VK_NUMPAD8, 0);}钩子消息里有窗口的HWND? GetActiveWindow 得到是整个程序的窗口句柄吧?我想得到的是其它程序中正在输入的文本框句柄,再往该文本框发送模拟键盘消息, 直接往GetActiveWindow 得到的句柄发能行么? 经测试 直接往 GetActiveWindow 得到的句柄发是可以的谢谢各位了不过还想知道钩子消息里的窗口句柄信息在哪呢? 请教高手 对ATL的一点疑问 图像拼接的问题(在线等) 请问怎样使内存泄露信息包含文件和行号? ComboBox的看似简单,但难度超高的问题(100分) 怎么在IE的自定义ToolBar Button点击时显示一个下拉菜单啊 菜鸟问题--关于数据库的连接 高手帮忙看看 帮个忙,说说super I/O duilib框架 请问怎么在combox初始化时候显示一项内容? 基于vc++6.0的视频数据的接受与显示
{
if(nCode < 0 || nCode == HC_NOREMOVE)
return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
if(lParam & 0x40000000)
{
return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
if (wParam == VK_NUMPAD8)
{
::SetForegroundWindow(g_hWndCaller); // 此处不知道如何得到按键窗口句柄???? keybd_event('S', 0, 0, 0);
keybd_event('S', 0, KEYEVENTF_KEYUP, 0);
}
return ::CallNextHookEx(g_hHook, nCode, VK_NUMPAD8, 0);
}
钩子消息里有窗口的HWND?