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));
}
这个方法应该计算屏幕上 IHTMLElement 的绝对位置,同时考虑到 webbrowser 控件的位置。然后它返回一个 Point 变量,该变量对应于元素的中点。它出什么问题了?它的目标似乎降低了大约 50-60 像素。编辑:我也尝试了同样的事情,但使用 HtmlElement 而不是 IHTMLElement。没有什么不同。我使用 SetCursorPos 函数将鼠标光标发送到计算结果,但它总是低于所需位置。我没有考虑什么?