1

私のコードは、テキスト ボックスからのみテキストを取得できるようになりました。Web ページやテキスト ファイルからテキスト ボックスなど、ウィンドウからテキストを取得したいと考えています。どうすればいいですか?

    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;
    }
4

1 に答える 1

0

質問を額面どおりに捉えて、完全に一般的に言えば、考えられるすべてのウィンドウでこれを実行できる唯一の方法は、スクリーン スクレイプと OCR を使用してテキストに変換することです。これは、すべてのプログラムがテキストを生成するために使用する単一の共通インターフェイスがないためです。

さて、多くのプログラムで機能することができることがいくつかあります。アクセシビリティまたは自動化 API を使用できます。これらは、スクリーン リーダーで使用されるものと同じ手法です。ドキュメントは次の場所にあります。

私が理解しているように、UIA は MSAA の後継であり、新しいアプリで好まれています。

于 2013-03-28T11:56:51.613 に答える