2016-08-16 96 views

回答

0

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

這種事情是很容易的,如果你是在當前具有焦點的應用程序確認,但創建一個通用的按鍵鉤?沒那麼多。

我在研究生院修了一個C#/ C++程序,攔截了用於另一個應用程序的擊鍵,但是我只能通過等待所需的應用程序窗口打開,自動打開我自己的彈出窗口接收輸入,然後將按鍵傳回原始窗口。

我不是說它不能完成,但是我的背景知識(儘管有點過時)和一些粗略的研究並沒有在基本的腳本世界裏提出任何能夠滿足你看起來在之後。

我知道如何做到這一點(這可能是錯誤的)的唯一方法是在每個打開的應用程序中都有鉤子,並且當應用程序上的文本框獲得焦點時,將焦點放在您自己的文本接收應用程序上。分析按鍵,然後將所需的文本/按鍵傳遞到原始應用程序/文本框。這需要事先知道您正在使用的機器上所有可能的應用程序中的「窗口」(即所有對象),以便知道文本框何時獲得焦點。 如果我回想起來,有可能知道何時按下了按鍵(如果您在所有應用程序中都有鉤子)並從那裏重新定向,但即使如此,也可能會丟失第一次按鍵。

同樣,這主要是推測性的。

+0

謝謝你的回答!由於窗口甚至單元格(不是excel,雖然)都將成爲焦點,但問題只在於捕捉輸入並相應地改變它。 – Blufftl

+0

@Blufftl,除非您構建了您正在觀察的應用程序,或者它提供了自定義快捷鍵,否則我認爲您會遇到與我一樣的情況:創建一個應用程序,列舉打開的窗口,觀察特定的窗口;當一個「單元格」(該窗口中的一個窗口)被給予焦點時,將焦點重新放回到您的應用程序,並過濾擊鍵(某些擊鍵可能立即返回焦點,其他擊鍵可能是特殊字符或按鈕點擊的快捷鍵等);當單擊鼠標或收到特定的按鍵/序列時,將焦點(和/或鼠標點擊)返回到應用程序。 Spy ++可能會對你有所幫助 – tonip