我尝试在c中创建一个设置低级键盘钩子的应用程序,每次用户按下一个键时,它都会写一个我所创建的字符串的字符 .
有人可以解释如何在不使用keybd_event函数的情况下更改用户输入,但在操作系统解释之前更改密钥本身 .
我尝试了一些MSG和更改wparam,但它没有用 . 如果有人能给我看一个代码示例,那就更好了
你不能 . 你必须拒绝你的钩子,然后使用 keybd_event() 或 SendInput() 发布你自己的密钥 . 并确保检查 KBDLLHOOKSTRUCT::flags 字段是否启用了 LLKHF_INJECTED 或 LLKHF_LOWER_IL_INJECTED 标志,因此您不会拒绝自己的模拟密钥 .
keybd_event()
SendInput()
KBDLLHOOKSTRUCT::flags
LLKHF_INJECTED
LLKHF_LOWER_IL_INJECTED
我尝试了MSG并更改了wparam,但它没有用
MSG 结构不与 WH_KEYBOARD_LL 钩子一起使用 .
MSG
WH_KEYBOARD_LL
1 回答
你不能 . 你必须拒绝你的钩子,然后使用
keybd_event()
或SendInput()
发布你自己的密钥 . 并确保检查KBDLLHOOKSTRUCT::flags
字段是否启用了LLKHF_INJECTED
或LLKHF_LOWER_IL_INJECTED
标志,因此您不会拒绝自己的模拟密钥 .MSG
结构不与WH_KEYBOARD_LL
钩子一起使用 .