如何将鼠标移动到,webbrowser控件上指定的标签上。
做一页面个模拟点击,碰到一个难题。如何将鼠标移动到,webbrowser控件上指定的标签上。是鼠标呈现“手型” --------------------编程问答-------------------- 怎么没人懂 --------------------编程问答-------------------- 先找出你要的标签的句柄,用SENDMESSAGE和MOUSEMOVE用可以了 --------------------编程问答-------------------- <div onmouseover= "this.style.backgroundColor= '#0099cc ' " style= "cursor:hand; "> test </div> --------------------编程问答--------------------
能不能具体点啊 --------------------编程问答--------------------
笨蛋
--------------------编程问答-------------------- 能有更好的方法吗? --------------------编程问答--------------------
把你的问题描述清楚
模拟点击为什么要呈现“手型”?
指定的"标签"又是什么?
最好给出HTML
--------------------编程问答-------------------- 实也不用呈现“手型”,只是需要模拟点击而已。
通过下面的代码已经能够定位到需要点击的链接link[ii],现在的问题是,怎么把鼠标移动到需要点击的链接上,然后点击。
HtmlElementCollection link = webBrowser1.Document.GetElementsByTagName("a");
for (int ii = 0; ii < link.Count; ii++)
{
if (link[ii].GetAttribute("href").IndexOf(tg_url) >= 0)
{
link[ii].InvokeMember("click");
mouse_event(MouseEventFlag.LeftDown, left, top, 0, UIntPtr.Zero);
//执行左键按下
mouse_event(MouseEventFlag.LeftUp, left, top, 0, UIntPtr.Zero);
//执行左键松开
}
} --------------------编程问答-------------------- link[ii].InvokeMember("click");
无法实现手动点击的效果。 --------------------编程问答--------------------
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("about:blank");
webBrowser1.Document.Write("<a href=\"http://www.csdn.net/\" target=\"_blank\">CSDN</a>");
}
private void button1_Click(object sender, EventArgs e)
{
HtmlElementCollection link = webBrowser1.Document.GetElementsByTagName("a");
for (int ii = 0; ii < link.Count; ii++)
{
if (link[ii].GetAttribute("href").IndexOf("csdn",StringComparison.CurrentCultureIgnoreCase) >= 0)
{
link[ii].InvokeMember("click");
}
}
}
没问题
--------------------编程问答--------------------
link[ii].InvokeMember("click");
无法实现手动点击的效果。 --------------------编程问答-------------------- 还要手工点击啊
SEO软件?
--------------------编程问答-------------------- 需要移动鼠标到链接上,然后调用user32.dll,API模拟点击 --------------------编程问答--------------------
呵呵,是啊。 --------------------编程问答--------------------
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("about:blank");
webBrowser1.Document.Write(" <a href=\"http://www.csdn.net/\" target=\"_blank\">CSDN</a>");
}
[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
private static extern int SetCursorPos(int x, int y);
private void button1_Click(object sender, EventArgs e)
{
HtmlElementCollection link = webBrowser1.Document.GetElementsByTagName("a");
for (int ii = 0; ii < link.Count; ii++)
{
if (link[ii].GetAttribute("href").IndexOf("csdn", StringComparison.CurrentCultureIgnoreCase) >= 0)
{
Rectangle rect = link[ii].OffsetRectangle;
Point p = new Point(rect.Left + 2, rect.Top + 2);
p = this.PointToScreen(p);
SetCursorPos(p.X, p.Y);
}
}
}
点击之前加上SetCursorPos
--------------------编程问答-------------------- 不知道为什么
Rectangle rect = link[ii].OffsetRectangle;
Point p = new Point(rect.Left + 2, rect.Top +2);
rect.Left ,rect.Top 的值一直都是0 --------------------编程问答-------------------- 要转换啊
p = this.PointToScreen(p);
--------------------编程问答-------------------- Rectangle rect = link[ii].OffsetRectangle;
Point p = new Point(rect.Left + 10, rect.Top +10);
p = this.PointToScreen(p);
SetCursorPos(p.X, p.Y);
有的,不过好像鼠标不能移动到链接上。一直在webbrowser边缘上。 --------------------编程问答--------------------
你的可以移动到链接上吗? --------------------编程问答-------------------- 如果紧紧是为了实现当鼠标放在控件上呈现手型可以使用css。
<div id="test">
</div>
css:
#test{cursor:pointer;} --------------------编程问答-------------------- 除 --------------------编程问答-------------------- [DllImport("User32.Dll")]
public static extern long SetCursorPos(int x, int y);
SetCursorPos(p.x, p.y);
补充:.NET技术 , C#