http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7659|回复: 2

[咨询站长] C#按键鼠标模拟点击,使用异步等待是否能够提升键鼠点击动作的流畅度。

[复制链接]
发表于 2015-10-25 04:18:02 | 显示全部楼层 |阅读模式
本帖最后由 我是MT 于 2015-10-25 04:37 编辑

用到的相关技术:C#找图识图,模拟鼠标键盘的点击操作。
应用场景和问题描述:我做了一个软件,有这样一个应用场景:就是C#模拟鼠标右键点击桌面【我的电脑】→【计算机】图标,弹出来菜单栏,菜单栏中有“【打开】”这个选项(如下图),我接着通过找图的方法寻找“【打开】”这个图片(如下图第二张图),找到这个位置之后,鼠标移动到这个选项位置上,进行点击操作。由于考虑到每个人的电脑配置不同,而且我这个操作对于效率有较高的要求。如何能够保证这一连串动作以最快的效率完成。
:我找图的原理,就是在屏幕上面寻找我事先已经准备好的图片。来通过图片,定位这些“菜单项”的位置。
打开.png        打开.png
           

首先是在桌面上寻找图片“我的电脑”,找到之后,鼠标右键。这个时候会弹出来菜单。电脑配置很慢的情况下, 右键弹出来菜单的响应时间,有的可能是100ms,有的速度快得可能是20ms。有的可能要200ms。为了能够兼容所有的机器,我这里索性把这个等待的时间,设置成了300ms。300ms 之后再去判断,右键是否弹出来了这个菜单。所以300ms之后会扫描一次,是否出来了菜单栏。但,因为需要频繁进行判断,所以每次判断至少要300ms时间。导致鼠标模拟操作的动作很不连贯,停顿和浪费的时间非常多。


我的意思是,有没有办法加快这个过程。比如采用异步方法无限死循环找图,一旦捕获到右键菜单一弹出来,就进行相应的鼠标点击操作。这样子就不必每次等待的时间设置为固定死的300ms,导致每个动作都有很大的停顿感。也就是采用自定义事件的方式,替代这种固定延时300ms的笨笨的做法。灵活地判断图片什么时候出来了,立即进行相应的响应。做到快速响应。



如果是自定义无限循环找图,把死循环放到自定义事件里面。会导致界面卡顿。有没有更好的办法,即达到我的目的,又不导致界面卡顿的办法呢。
当然,我上面这个应用场景只是举个例子。高手们不要疑问,为何我要有这样一个应用场景,并且为何一定要用找图识图的方法来判断菜单栏是否出现。因为我这个应用场景比较特殊,所以为了能够说明问题,我就拿这个来举个例子而已。
因为是部署在配置很低的台式机上面,各种机器的配置不尽相同。运行速度也不一致。有快有慢。所以在执行很多动作的时候,为了能够在菜单弹出来之后,做出正确的判断。所以统一延时了300ms。这种一刀切的办法,导致,当你的操作步骤有很多的时候,这个延时叠加起来就显得非常低效率。而且固定的延时300ms,也没有充分利用每台机器的cpu效率。











1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-10-25 11:42:56 | 显示全部楼层
用句柄,干嘛要用c#不用按键精灵呢?
 楼主| 发表于 2015-10-25 20:51:02 | 显示全部楼层
本帖最后由 我是MT 于 2015-10-25 20:52 编辑
kingship 发表于 2015-10-25 11:42
用句柄,干嘛要用c#不用按键精灵呢?

按键精灵太弱了。比不上AU3,之前的那个版本我用AU3写得都差不多2000行代码。想用C#重写。精简下代码结构。我这个程序是给工厂生产线的机器使用的。操作的是机器上面的嵌入式系统。所以家庭办公电脑是没有那套系统的。作为公司大量使用,肯定采用稳定兼容的英文编程语言。按键精灵对unicode 数据库 热键,钩子这块,还有中文乱码。问题太多。并且按键精灵生成的exe文件,ui界面自定义,其他强大的组件什么的都是不支持的。

你说的用句柄来判断。是个什么原理。问题是我的电脑环境根本不是实际生产环境。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-6-1 15:52

© 2014-2021

快速回复 返回顶部 返回列表