繁体   English   中英

屏幕(虚拟)键盘在Win10中如何工作

[英]How does on-screen (virtual) keyboard works in Win10

我在Google或任何Microsoft网站中都找不到与之相关的任何内容,因此我决定在此处提出一个问题。

大家都知道在基于Win的OS中有一个virtual keyboard 我也知道基于* nix的操作系统也有。 因此,问题在于:

它在内部如何运作?

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

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

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

而且还有很多不同的软件,例如AutoIt( 是的,这是一种语言 ,但与本示例相关),可以模拟pressing the X button 它们如何在基于Win的OS中工作? 它们是否与默认的屏幕键盘“共用”并使用相同的驱动程序/ WinAPI,或者它们之间存在差异?

第二种情况是:

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

我猜想找出“按下按钮的方式的唯一方法是通过taskmgr检查当前进程列表,并找出是否启动了任何东西。 还是我在这里完全错了,错过了什么?

范围

我编写了一个node.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(原始输入线程)中的常规硬件输入合并。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM