C# 钩住其他应用程序的文本框(生产力)

C# 钩住其他应用程序的文本框(生产力),c#,.net,windows,winforms,winapi,C#,.net,Windows,Winforms,Winapi,我正在创建一个辅助工具,帮助我在做某些事情时提高工作效率,我需要监控桌面(而不是metro)上外部应用程序(不是我制作的应用程序)的输入,并观察文本框中输入的某些符号,如果它们与我添加到列表中的符号匹配,我的应用程序将用我设置的其他内容替换外部应用程序中的特定输入 我们如何在桌面上观看给定外部应用程序中的输入?程序是否有消息(我想是W_MSG)在用户输入文本框时发送消息?这种场景支持的路径是UI自动化(请参阅)。它是Microsoft主动可访问性的继承者,提供对GUI元素和事件的编程访问 简要概

我正在创建一个辅助工具,帮助我在做某些事情时提高工作效率,我需要监控桌面(而不是metro)上外部应用程序(不是我制作的应用程序)的输入,并观察文本框中输入的某些符号,如果它们与我添加到列表中的符号匹配,我的应用程序将用我设置的其他内容替换外部应用程序中的特定输入


我们如何在桌面上观看给定外部应用程序中的输入?程序是否有消息(我想是W_MSG)在用户输入文本框时发送消息?

这种场景支持的路径是UI自动化(请参阅)。它是Microsoft主动可访问性的继承者,提供对GUI元素和事件的编程访问

简要概述您可以订阅的可用事件。是一个很有希望订阅的候选人


所有Windows标准控件都支持UI自动化。如果您的外部应用程序使用的GUI库不基于Windows控件(如Qt),则无法使用UI自动化。

与尝试监视桌面上当前活动的所有输入控件相比,挂接键盘会更好。@SimonWhitehead true,但是,当输入进来时,我需要太多地担心逐字符解析,不是吗?其中,与WM_GETTEXT一样,我可以将控件中的文本作为一个完整的字符串来获取,只需执行tb.Replace(str,“newContent”);非常感谢你,真是不可思议。我终于有了在.net中使用UI自动化的理由