[百分求解] 键盘HOOK,高手进.........
//代码:
#include <windows.h>
#include <stdio.h>
HHOOK g_hKeyboard=NULL;
#pragma data_seg("NecData")
HWND g_hWnd=NULL;
#pragma data_seg()
LRESULT CALLBACK KeyboardProc(
int code,
WPARAM wParam,
LPARAM lParam
)
{
if ((lParam&0xc000ffff)==1)
{
if((wParam > 48) && (wParam < 57))
{
// ::PostMessage(g_hWnd,WM_KEYDOWN,'A',lParam);
::SendMessage(g_hWnd, WM_CHAR, 'A', 0 );
return 1;
}
}
return CallNextHookEx(g_hKeyboard,code,wParam,lParam);
//return 1;
}
void SetHook(HWND hwnd)
{
g_hWnd=hwnd;
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("keyhook"),0);
}
//问题:
//我想实现当键盘按下数子键1的时候,在任何窗体内得到的是数子键2被按下,键盘的HOOK过程我写了,可是不知道怎么在KeyboardProc中,改变按键消息的值,然后怎么重新把新的消息发出去?