C# webbrowser模拟鼠标输入和键盘输入的方法,网上好多方法都不行,这个终于可以了
鼠标模拟点击的:
首先取得webbrowser的元素t: HtmlElement searchButton = eWB.Document.GetElementById("t");
我们点击一下鼠标,会触发三个事件,按顺序分别是mousedown,mouseup,click。这里不能直接invokemember一个mousedown,而是要onmousedown,意思是委托执行页面里面js等语言的onmousedown函数。
执行mousedown操作: searchButton.InvokeMember("onmousedown");
执行mouseup操作: searchButton.InvokeMember("onmouseup");
执行click操作: searchButton.InvokeMember("click");
键盘模拟输入的:
Keyword_a为要输入的一串字符,可以是各种字符包括中文,别担心,C#里面一个char是可以放一个中文字符的。
Char[] b = d_task.Keyword_a.ToCharArray();//把字符串变成char数组
for (int i = 0; i < b.Length; i++)//把char数组一个个通过sendkes输入
{
SendKeys.Send(b[i].ToString());
SendKeys.Flush();
delayTime(rd.Next(500, 2000));
}
这里送一个delaytime函数,可以在webbrowser执行输入等操作之后等一段时间,等它自己做自己的事情不会卡死
private void delayTime(double msecond)
{
DateTime tempTime = DateTime.Now;
while (tempTime.AddMilliseconds(msecond).CompareTo(DateTime.Now) > 0)
Application.DoEvents();
}
首先取得webbrowser的元素t: HtmlElement searchButton = eWB.Document.GetElementById("t");
我们点击一下鼠标,会触发三个事件,按顺序分别是mousedown,mouseup,click。这里不能直接invokemember一个mousedown,而是要onmousedown,意思是委托执行页面里面js等语言的onmousedown函数。
执行mousedown操作: searchButton.InvokeMember("onmousedown");
执行mouseup操作: searchButton.InvokeMember("onmouseup");
执行click操作: searchButton.InvokeMember("click");
键盘模拟输入的:
Keyword_a为要输入的一串字符,可以是各种字符包括中文,别担心,C#里面一个char是可以放一个中文字符的。
Char[] b = d_task.Keyword_a.ToCharArray();//把字符串变成char数组
for (int i = 0; i < b.Length; i++)//把char数组一个个通过sendkes输入
{
SendKeys.Send(b[i].ToString());
SendKeys.Flush();
delayTime(rd.Next(500, 2000));
}
这里送一个delaytime函数,可以在webbrowser执行输入等操作之后等一段时间,等它自己做自己的事情不会卡死
private void delayTime(double msecond)
{
DateTime tempTime = DateTime.Now;
while (tempTime.AddMilliseconds(msecond).CompareTo(DateTime.Now) > 0)
Application.DoEvents();
}