我写了一个全局键盘钩子
1,目的是当用记按下如 小键盘的Del键
将其变为输入',' ,但在调用时出现用户按一下键触发2 次的现象
变成了输入',,'
我是在
LRESULT CALLBACK MyTaskKeyHookLL(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0 ) //==HC_ACTION
{
case VK_DELETE: ::PostMessage(g_hWnd,WM_USER,10,1112);return 1;
发送消息给目标窗口处理的.2,在全局键盘钩子如何得到当前得到光标窗口的句柄
甚至得到当前得到光标的编辑控件的句柄
GetForegroundWindow();//取目标窗口控件句柄
只能得到MDI窗口的句柄
无法得到当前SHEET窗口的句柄
1,目的是当用记按下如 小键盘的Del键
将其变为输入',' ,但在调用时出现用户按一下键触发2 次的现象
变成了输入',,'
我是在
LRESULT CALLBACK MyTaskKeyHookLL(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0 ) //==HC_ACTION
{
case VK_DELETE: ::PostMessage(g_hWnd,WM_USER,10,1112);return 1;
发送消息给目标窗口处理的.2,在全局键盘钩子如何得到当前得到光标窗口的句柄
甚至得到当前得到光标的编辑控件的句柄
GetForegroundWindow();//取目标窗口控件句柄
只能得到MDI窗口的句柄
无法得到当前SHEET窗口的句柄
case VK_DELETE: ::PostMessage(g_hWnd,WM_USER,10,1112);return 1;
不应立即RETURN 1,而应该 return(CallNextHookEx(NULL,code,wParam,lParam));
将nCode = ','的虚键后直接
return(CallNextHookEx(NULL,code,wParam,lParam));
2.GetFocus
或者说在代码中怎么处理?
我现在是用时间差来判断,但很不准确?
谢谢
{
if(HC_ACTION==ncode)
{
if((lParam&0xc0000000)==0xc0000000)//抬起
{
}
}
}
if(lParam & 0x8000000)
{
//弹起
}
else
{
//按下
}
是不是我用的
WH_KEYBOARD_LL
低级HOOK的原因?
{
//按下
}
else
{
//弹起
}
在LowLevelKeyboardProc里面,wParam是消息类型,lParam转化成KBDLLHOOKSTRUCT指针来使用。
谢谢liotion(天上掉下一个林分分~~) (
和各位的帮助