gpt4 book ai didi

c# - 在任何打开的应用程序的文本字段中获取 'word before the cursor' 的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:35:14 24 4
gpt4 key购买 nike

我正在编写一个文本输入应用程序,它位于系统托盘中,可通过键盘 Hook 协助文本输入。用户输入的当前字符由之前的字母决定。

所以如果你有“我想本|”其中“|”表示插入符号,当用户敲击键盘时,下一个字母是通过对单词“ben”的前一个字母进行计算来确定的。结果可能是“d”>“弯曲”或“t”>“弯曲”等。

如果我从头开始每个单词,这很好用,我可以在我的程序中跟踪字符串中的单词。

当我将插入符放在单词中间时,问题就出现了。我需要检测插入符号位置之前出现的字符。如果我按箭头键等,也会出现这种情况。

在过去的 AutoHotkey 应用程序中,我通过发送一个“Shift + Ctrl + 左箭头”命令来突出显示字符,一个“Ctrl + C”命令来复制它,然后将剪贴板保存到我的字符串中。我希望在像 C# 这样的更健壮的语言中,我可以避免这种技术的丑陋突出显示。有没有办法以编程方式获取字符?

请注意,这必须出现在应用程序的任何文本字段中,因此我无法从文本字段本身获取字符(除非有一种方法可以访问当前处于焦点的文本字段)。

你怎么看?

最佳答案

获取“当前文本框”没有万无一失的方法。任何应用程序都可以推出自己的应用程序,因此您不知道要寻找什么。如果一个应用程序在这些事情上不合作,你就不能真正强制它。好吧,我猜你总是可以 try catch 屏幕截图并尝试对其进行 OCR,但这不太现实。

但是,使用质量不错的小部件工具包(或使用库存控制)编写的应用程序应该支持 Microsoft Active Accessibility ,它确实提供了一种访问该应用程序 UI 的标准化方法——或者更确切地说,是该 UI 的一些抽象 View ,它经过优化以通过屏幕阅读器等工具从中提取信息。听起来像你想要的,除了我不知道有什么方法可以从使用 MSAA 的控件中检索有关选择之前的文本的信息(插入符号只是一个 0 宽度的选择)。

关于c# - 在任何打开的应用程序的文本字段中获取 'word before the cursor' 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com