2016-08-16 100 views

回答

0

This is primarily speculation with a little experience and research mixed in.

这种事情是很容易的,如果你是在当前具有焦点的应用程序确认,但创建一个通用的按键钩?没那么多。

我在研究生院修了一个C#/ C++程序,拦截了用于另一个应用程序的击键,但是我只能通过等待所需的应用程序窗口打开,自动打开我自己的弹出窗口接收输入,然后将按键传回原始窗口。

我不是说它不能完成,但是我的背景知识(尽管有点过时)和一些粗略的研究并没有在基本的脚本世界里提出任何能够满足你看起来在之后。

我知道如何做到这一点(这可能是错误的)的唯一方法是在每个打开的应用程序中都有钩子,并且当应用程序上的文本框获得焦点时,将焦点放在您自己的文本接收应用程序上。分析按键,然后将所需的文本/按键传递到原始应用程序/文本框。这需要事先知道您正在使用的机器上所有可能的应用程序中的“窗口”(即所有对象),以便知道文本框何时获得焦点。 如果我回想起来,有可能知道何时按下了按键(如果您在所有应用程序中都有钩子)并从那里重新定向,但即使如此,也可能会丢失第一次按键。

同样,这主要是推测性的。

+0

谢谢你的回答!由于窗口甚至单元格(不是excel,虽然)都将成为焦点,但问题只在于捕捉输入并相应地改变它。 – Blufftl

+0

@Blufftl,除非您构建了您正在观察的应用程序,或者它提供了自定义快捷键,否则我认为您会遇到与我一样的情况:创建一个应用程序,列举打开的窗口,观察特定的窗口;当一个“单元格”(该窗口中的一个窗口)被给予焦点时,将焦点重新放回到您的应用程序,并过滤击键(某些击键可能立即返回焦点,其他击键可能是特殊字符或按钮点击的快捷键等);当单击鼠标或收到特定的按键/序列时,将焦点(和/或鼠标点击)返回到应用程序。 Spy ++可能会对你有所帮助 – tonip