当前使用SendInput(MOUSEEVENTF_MOVE)
来模拟鼠标移动。 SendInput
在处理之前向线程输入队列中添加一个新的鼠标事件。跟踪鼠标输入事件
是否有可能跟踪/检查某个特定事件是否已实际处理?
跟踪WM_MOUSEMOVE
在WndProc
是没有选择的,因为用户可能同时发出非模拟的鼠标移动。
当前使用SendInput(MOUSEEVENTF_MOVE)
来模拟鼠标移动。 SendInput
在处理之前向线程输入队列中添加一个新的鼠标事件。跟踪鼠标输入事件
是否有可能跟踪/检查某个特定事件是否已实际处理?
跟踪WM_MOUSEMOVE
在WndProc
是没有选择的,因为用户可能同时发出非模拟的鼠标移动。
是否可以跟踪/检查某个特定事件是否已实际处理?
一般来说:号
SendInput
处理之前增加了一个新的鼠标事件,以线程输入队列。
那么,没有。 SendInput
将输入事件放置到硬件输入队列中,在那里它们被原始输入线程拾取并分派到各个线程的输入队列。
跟踪在
WndProc
WM_MOUSEMOVE
没有选择,因为它有可能为用户发出的同时非模拟鼠标的移动。
正确。但是,您可以安装low-level mouse hook,您可以在其中识别注入的输入。注入的输入有LLMHF_INJECTED
或LLMHF_LOWER_IL_INJECTED
标志中的一个设置在MSLLHOOKSTRUCT结构的标志成员中。
脆性解决方案,允许您识别在应用程序的窗口过程的鼠标消息处理程序注入输入是通过MOUSEINPUT结构传递一个特定dwExtraInfo值。通过调用GetMessageExtraInfo可以在消息处理程序中查询此值。但这并不可靠,因为系统也使用这些值。应用程序无法使用的值范围不会超过系统使用的值。