4

Windows アプリケーションから、「Internet Explorer」、Firefox、およびその他のブラウザーで選択したテキストを検出したいと考えています。

これを達成するためにどのコードを使用すればよいか知っていますか?

IEでテキストを検索するのではなく、IEで「選択したテキストをキャプチャする」という考え方です。ところで、IE だけでなく、フォーカスのある Windows アプリケーションであれば、ctrl+c をシミュレートして選択したテキストをコピーしてからクリップボードを読み取ることも考えられますが、この解決策も好きではありません。

Windows API を使用して選択したテキストを取得する方法があるはずだとほぼ確信しています。

4

3 に答える 3

1

これはかなり難しい注文です。IE でこれを達成する可能性はわずかしかないと思います。IE では、「外部」ブラウザに読み込まれるのと同じページをWebBrowserコントロールに読み込み、選択したテキストを取得できます。私の知る限り、そしてこのようなことを長い間試みてきた誰かからのアドバイスによると、膨大な労力とリスクなしに C# コードにアクセスできる Firefox の自動化モデルはありません。

ページを制御できますか? jQuery のようなものを挿入して、Ajax 呼び出しを使用して選択内容を投稿し、その呼び出しをリッスンするようにサーバーをセットアップすることを検討してください。

于 2010-01-04T15:39:02.397 に答える
1

WatiN API を使用して Web ページに特定の文字列が存在するかどうかをテストすることをお勧めします。WatiN は現在 IE 6、7、および 8 をサポートしており、Firefox 2.x および 3.x でテストするためのCTP バージョンが存在します。この記事では、WatiN を使用して Web ページ内のテキストを検索する方法について説明します。WatiN サイトには、アプリケーションから WatiN を呼び出す方法を説明するドキュメントがあります。

コードの最初の出発点は次のとおりです。

using System;
using WatiN.Core;

public static class WatiNExample
{

    public static bool CheckUrlForText(string p_sUrl, string p_sText)
    {
        // Open a new Internet Explorer window and
        // go to the google website.
        IE ie = new IE(p_sUrl);

        try    
        {
            return ie.Text.Contains(p_sText));
        }
        finally
        {
            ie.Close();
        }
    }
}
于 2010-01-04T16:37:30.197 に答える
0

VB スクリプトはそれを実現する方法ですが、IE でのみ、(すべての Web ページを) クリップボードにコピーするだけです。次に、それを貼り付けて、取得した文字列を任意のアプリケーションで操作できます。

Option Explicit <br>
Dim objShell <br>
Set objShell=CreateObject("WScript.Shell") <br>
objShell.Run "iexplore.exe http://www.google.com" ' or whatever page you need to copy from <br>
WScript.Sleep 7000 ' just to wait IE to load the page <br>
objShell.SendKeys "^a" ' selects all <br>
objShell.SendKeys "^c" ' copy into clipboard <br>
于 2010-03-08T15:50:24.600 に答える