是否可以在处理WM_CHAR或WM_KEYDOWN消息时在自定义 Win32 控件中检测击键是否来自实际键盘,或者通过调用 SendInput 或keybd_event 类型函数来模拟?
您可以检查LLKHF_INJECTED
标志是否设置在低级钩子中。我认为你不能只看 LPARAM 就知道了。
从 Windows 8 开始,您可以在消息处理程序中使用GetCurrentInputMessageSource()
函数。 您可以检查报告的originId
是IMO_HARDWARE
、IMO_INJECTED
还是IMO_SYSTEM
。