Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何区分真正的键盘或鼠标输入与命令输入,如';SendInput';通过使用Winput_Windows_Keyboard_Hook_Keyboard Events - Fatal编程技术网

Windows 如何区分真正的键盘或鼠标输入与命令输入,如';SendInput';通过使用Winput

Windows 如何区分真正的键盘或鼠标输入与命令输入,如';SendInput';通过使用Winput,windows,keyboard,hook,keyboard-events,Windows,Keyboard,Hook,Keyboard Events,在visual studio中仔细查看spy++之后,我在键盘上键入时发现了hRawInput 我发现每次输入一个键时,这个值都会不断变化。 也许这个值意味着被称为RawInput的句柄,我认为hRawInput本身的值是没有意义的 但是,当通过这个句柄接近RawInput数据时,有没有办法区分使用SendInput的按键输入和使用真实键盘的按键输入? 如果存在一种方法,如何使这两种方法无法区分 在这个问题中,有人说,SetWindowsHookEx可以区分使用SendInput的输入和来自真实

在visual studio中仔细查看spy++之后,我在键盘上键入时发现了
hRawInput

我发现每次输入一个键时,这个值都会不断变化。 也许这个值意味着被称为
RawInput
的句柄,我认为hRawInput本身的值是没有意义的

但是,当通过这个句柄接近
RawInput
数据时,有没有办法区分使用SendInput的按键输入和使用真实键盘的按键输入? 如果存在一种方法,如何使这两种方法无法区分

在这个问题中,有人说,
SetWindowsHookEx
可以区分使用
SendInput
的输入和来自真实键盘的输入

然而,
SetWindowsHookEx
是一个用于钩住操作系统消息队列和应用程序消息队列之间的消息移动的函数,但是
SendInput
是一个在硬件队列上运行的函数,其级别远低于此级别,因此我不明白如何区分

将问题总结如下

  • 通过使用
    hRawInput
    ,如何区分使用SendInput的输入和实际设备的输入。我想知道如何通过使用SendInput或real device获得的输入的
    hRawInput
    获取数据信息

  • 即使
    SetWindowsHookEx
    在操作系统队列应用程序队列中工作,而SendInput在硬件队列中工作,如何区分使用SendInput的输入和实际设备的输入