写了个键盘钩子程序,想实现下面的功能:
比如:用户输入'A'时,自动替换成'B'。
修改KBDLLHOOKSTRUCT的vkCode和scanCode怎么都不行啊?钩子程序是好的
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if (pStruct->vkCode == 0x41) //A
{
pStruct->vkCode = 0x42; //B
//pStruct->scanCode = 0x33;
wParam = 0x42;
}
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
}
比如:用户输入'A'时,自动替换成'B'。
修改KBDLLHOOKSTRUCT的vkCode和scanCode怎么都不行啊?钩子程序是好的
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
if (pStruct->vkCode == 0x41) //A
{
pStruct->vkCode = 0x42; //B
//pStruct->scanCode = 0x33;
wParam = 0x42;
}
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}
}
当收到a时用keybd_event()发送b,这样马上就收到了b.b再用keybd_event()发送a.造成了循环。
有其他的办法吗?