private Point GetElementPosition(IHTMLElement current_element)
{
int x_add = current_element.offsetWidth;
int y_add = current_element.offsetHeight;
int x = current_element.offsetLeft;
int y = current_element.offsetTop;
while ((current_element = current_element.parentElement) !=null)
{
x+=current_element.offsetLeft;
y+= current_element.offsetTop;
}
y-=(webBrowser.Location.Y);
return new Point(x+(x_add/2),y-(y_add/2));
}
このメソッドは、Webブラウザコントロールの場所を考慮して、画面上のIHTMLElementの絶対位置を計算することになっています。次に、要素の中点に対応するPoint変数を返します。どうしたの?約50〜60ピクセル低いターゲットになっているようです。編集:私も同じことを試しましたが、IHTMLElementの代わりにHtmlElementを使用しました。何も違いはありませんでした。SetCursorPos関数を使用して、計算結果にマウスカーソルを送信しましたが、常に目的の場所よりも低くなっています。私は何を考慮していませんか?