私は、ユーザーが HTML ページを読み込むことができる UI のような Firebug の縮小版を作成する必要があるプロジェクトを任されており、要素の上にマウスを置くと強調表示されます。このアプリでは、ユーザーがスクリーンスクレイピングするテーブルを選択できるようになります....まだその部分には到達していません。
何かアドバイス?
ありがとう
ええと、私は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を適切と思われるとおりに解析することができます。
リチャード