点晴MIS内部交流论坛加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 技术文档交流 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 您是本文的第 126 位读者 
admin

积分:86362
等级:网站管理员
文数:7587
注册:2004-7-20

  信 息   留 言   主 页   编 辑   引 用    

楼 顶 

 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();}


该文章在 2018-1-13 11:33:30 编辑过

  离 线  2018-1-13 11:33:29 
  本文章共有 0 页, 0 张回文,每页有 10 张回文 >> [ ]
页码:
Copyright 2003-2018 ClickSun All Rights Reserved