屏幕(虚拟)键盘在 Win10 中的工作原理



我在谷歌或任何Microsoft网站上没有找到任何相关的内容,所以我决定在这里问一个问题。

每个人都知道,在基于Win的操作系统中有一个virtual keyboard。我也知道基于 *nix 的操作系统,也有。所以,问题是关于:

它的内部是如何工作的?

我的意思是,让我们举一个我在 Windows 10 中打开on screen keyboard的示例。两者之间的实际区别是什么:

  1. 通过硬件键盘输入:当我使用它时,就像我按下X按钮
  2. 一样
  3. ..并使用虚拟键盘,当我按下相同的按钮时

想象一下,我有终端/计算机的管理员访问权限,是否有任何选项可以跟踪/区分第二次我按下按钮不是在硬件键盘上,而是在屏幕上(通过鼠标单击(版本?

还有许多不同的软件,例如 AutoIt(是的,它是一种语言,但它与此示例相关(可以模拟pressing the X button。它们在基于双赢的操作系统中如何工作?它们是否与默认屏幕键盘"通用">并使用相同的驱动程序/WinAPI,或者它们之间存在差异?

第二种情况介于:

  1. 默认屏幕键盘
  2. 编译的自动脚本
  3. ..任何其他模拟press X button的软件

我想找出"按钮是如何确切按下的">的唯一方法是通过taskmgr检查当前进程列表,并找出是否有任何启动。还是我在这里完全错了,错过了什么?

范围

我编写了一个节点.js脚本,该脚本模拟Windows应用程序中的按钮按下行为。

TL:DR business logic short => open notepad.exe and type `Hello world`

有人可以给我任何建议/推荐任何带有Get­Async­Key­State检查行为演示的 powershell/bat 脚本(或任何其他解决方案(吗?有了它,我可以轻松检查自己的node.js脚本(不是通过它的功能,而是通过触发press the X button事件( 我在这里找到了node.js案例的答案:在Powershell中跨应用程序检测按键

SendInput是在软件中生成用户输入的首选方法。Windows屏幕键盘可能将其用于除Ctrl + Alt + Delete之外的所有内容,我相信它具有某种特殊处理。屏幕键盘在某些配置中只能生成 Ctrl+Alt+Delete 键。

软件生成的输入与内核中 RIT(原始输入线程(中的正常硬件输入合并。

低级键盘挂钩可以检测软件生成的输入。

相关内容

  • 没有找到相关文章

最新更新