我在谷歌或任何Microsoft网站上没有找到任何相关的内容,所以我决定在这里问一个问题。
每个人都知道,在基于Win的操作系统中有一个virtual keyboard
。我也知道基于 *nix 的操作系统,也有。所以,问题是关于:
它的内部是如何工作的?
我的意思是,让我们举一个我在 Windows 10 中打开on screen keyboard
的示例。两者之间的实际区别是什么:
- 通过硬件键盘输入:当我使用它时,就像我按下
X
按钮
一样 - ..并使用虚拟键盘,当我按下相同的按钮时
想象一下,我有终端/计算机的管理员访问权限,是否有任何选项可以跟踪/区分第二次我按下按钮不是在硬件键盘上,而是在屏幕上(通过鼠标单击(版本?
还有许多不同的软件,例如 AutoIt(是的,它是一种语言,但它与此示例相关(可以模拟pressing the X button
。它们在基于双赢的操作系统中如何工作?它们是否与默认屏幕键盘"通用">并使用相同的驱动程序/WinAPI,或者它们之间存在差异?
第二种情况介于:
- 默认屏幕键盘
- 编译的自动脚本
- ..任何其他模拟
press X button
的软件
我想找出"按钮是如何确切按下的">的唯一方法是通过taskmgr
检查当前进程列表,并找出是否有任何启动。还是我在这里完全错了,错过了什么?
范围
我编写了一个节点.js脚本,该脚本模拟Windows应用程序中的按钮按下行为。
TL:DR business logic short => open notepad.exe and type `Hello world`
有人可以给我任何建议/推荐任何带有GetAsyncKeyState
检查行为演示的 powershell/bat 脚本(或任何其他解决方案(吗?有了它,我可以轻松检查自己的node.js
脚本(不是通过它的功能,而是通过触发press the X button
事件( 我在这里找到了node.js
案例的答案:在Powershell中跨应用程序检测按键
SendInput
是在软件中生成用户输入的首选方法。Windows屏幕键盘可能将其用于除Ctrl + Alt + Delete之外的所有内容,我相信它具有某种特殊处理。屏幕键盘在某些配置中只能生成 Ctrl+Alt+Delete 键。
软件生成的输入与内核中 RIT(原始输入线程(中的正常硬件输入合并。
低级键盘挂钩可以检测软件生成的输入。