0

私は、ユーザーが HTML ページを読み込むことができる UI のような Firebug の縮小版を作成する必要があるプロジェクトを任されており、要素の上にマウスを置くと強調表示されます。このアプリでは、ユーザーがスクリーンスクレイピングするテーブルを選択できるようになります....まだその部分には到達していません。

何かアドバイス?

ありがとう

4

1 に答える 1

3

ええと、私はFirebug UIを使用していませんが、WinFormsアプリで.NET2.0WebBrowserコントロールを使用してあなたが説明したことを正確に実行しました。

基本的に、WebBrowserとTimerコントロールをフォームに追加し、タイマー経過イベントで、GetCursorPosネイティブ関数を使用してマウスの位置をクエリし、WebBrowser.Document(HtmlDocumentクラス)のGetElementFromPointメソッドを使用します(xとyの位置を調整します)ブラウザコントロールに関連して)。

これにより、マウスの位置の下にあるHtmlElementが返されます。この方法の要点は次のとおりです。

HtmlElement GetCurrentElement()
{
    if (Browser.ReadyState == WebBrowserReadyState.Complete && Browser.Document != null)
    {
        Win32Point mouseLoc = HtmlScan.Win32.Mouse.GetPosition();
        Point mouseLocation = new Point(mouseLoc.x, mouseLoc.y);
        // modify location to match offset of browser window and control position:
        mouseLocation.X = ((mouseLocation.X - 4) - this.Left) - Browser.Left;
        mouseLocation.Y = ((mouseLocation.Y - 31) - this.Top) - Browser.Top;

        HtmlElement element = Browser.Document.GetElementFromPoint(mouseLocation);

        return element;
    }

    return null;
}

HtmlElementを取得したら、InnerHTMLを適切と思われるとおりに解析することができます。

リチャード

于 2008-10-06T01:22:47.800 に答える