我的代码现在只能从文本框中获取文本。我想从窗口获取文本,例如从网页或文本文件到文本框。我该怎么办?
private void textBox2_MouseMove(object sender, MouseEventArgs e)
{
if (!(sender is TextBox)) return;
var targetTextBox = sender as TextBox;
if (targetTextBox.TextLength < 1) return;
var currentTextIndex = targetTextBox.GetCharIndexFromPosition(e.Location);
var wordRegex = new Regex(@"(\w+)");
var words = wordRegex.Matches(targetTextBox.Text);
if (words.Count < 1) return;
var currentWord = string.Empty;
for (var i = words.Count - 1; i >= 0; i--)
{
if (words[i].Index <= currentTextIndex)
{
currentWord = words[i].Value;
break;
}
}
if (currentWord == string.Empty) return;
//toolTip1.SetToolTip(targetTextBox, currentWord);
textBox3.Text = currentWord;
}
答案 0 :(得分:0)
从表面上看问题,完全一般,能够为所有可能的窗口执行此操作的唯一方法是屏幕刮擦并使用OCR转换为文本。那是因为所有程序都没有单一的通用接口来生成文本。
现在,您可以做的事情可以用于许多程序。您可以使用辅助功能或自动化API。这些与屏幕阅读器使用的技术相同。文件可以在这里找到:
据我了解,UIA是MSAA的继承者,在新应用中更受青睐。