如何使鼠标限制在不规则区域中点击[已解决]
本帖最后由 cashiba 于 2018-3-6 22:58 编辑很久以前曾经有要求自动点击某第三方软件的非标准MS日历控件中的某些范围的天数,解决得不完美.....
今天又想到这个问题,发个贴Mark下来.
为便于说明和操作,找来某网页上的大日历控件如下:
网页链接
如上图,欲使鼠标只点击本月的日历小方块
比喻第1天到第28天的随机哪天
比喻第3天到第21天的随机哪天
....
想通过限定鼠标坐标在不规则范围内的方式实现随机点击。
我想到的笨办法是用数组矩阵作为中介:
(5,1) (6,1) (7,1)
(1,2) (2,2) (3,2) (4,2) (5,2) (6,2) (7,2)
(1,3) (2,3) (3,3) (4,3) (5,3) (6,3) (7,3)
(1,4) (2,4) (3,4) (4,4) (5,4) (6,4) (7,4)
(1,5) (2,5) (3,5) (4,5)
将以上矩阵位置标记存入一维数组(7x5=>1~35)
然后随机选择该一维数组的下标(1~35)代表点击位置
再计算出坐标,类似如下:
(2,4)-(640,744)
(1,5)-(608,769)
(2,6)-(640,794)
(4,6)-(704,794)
(5,4)-(736,744)
(4,6)-(704,794)
(1,6)-(608,794)
(2,5)-(640,769)
(3,3)-(672,719)
(5,2)-(736,694)
感觉有点繁琐....
方法可能不只一种,哪位大侠有简洁高效的办法呢? 本帖最后由 afan 于 2018-3-5 22:58 编辑
很久以前曾经有要求自动点击某第三方软件的非标准MS日历控件中的某些范围的天数,解决得不完美.....
今天又 ...
cashiba 发表于 2018-3-5 21:49 http://www.autoit3.cn/images/common/back.gif
想到2种方法,LZ可以参考下
一:
定义几个常量:鼠标坐标取值范围左上角坐标、右下角坐标;方格宽、高;
定义几个变量:起始日所在的行号、列号;终止日所在的行号、列号。
通过以上数据计算起始点及结束点坐标,然后取随机坐标,并判断是否在范围内即可。
二:
定义几个常量:鼠标坐标取值范围左上角坐标;方格宽、高、行数、列数;
定义几个变量:起始日日期数、该数对应的行号、列号;终止日日期数。
通过以上数据自动计算并填充一个35元素的数组,取日期范围内随机日期数对应的坐标即可。 A大的第二个方法好像跟我的思路差不多,基本上可以解决问题....
第一种方法直观些,就是直接计算出符合要求的坐标范围。
可惜数学几何学得不好,感觉到抽象化起来应该能用一个数学表达式或二元方程描述出这个范围,就像跑马圈地或曲柄连杆运动一样,轨迹可计算。
这个思路等以后无聊有空的时候再慢慢弄吧
{:face (332):} A大的第二个方法好像跟我的思路差不多,基本上可以解决问题....
第一种方法直观些,就是直接计算出符合要求 ...
cashiba 发表于 2018-3-6 20:33 http://www.autoit3.cn/images/common/back.gif
个人认为写这种东西关键是要方便日后使用,并且无需修改代码。如果像一楼那样固定写好坐标数组,那下个月又至少得修改35处了… 个人认为写这种东西关键是要方便日后使用,并且无需修改代码。如果像一楼那样固定写好坐标数组, ...
afan 发表于 2018-3-6 21:29 http://www.autoit3.cn/images/common/back.gif
这个问题不大,当时基本已解决了。用配置文件设置以下几个参数
Calender(二维数组,起始日的位置数, 结束日的位置数, 第一个小方格中心[基点]的横纵坐标, 横向相邻两个小方格中心点的间距, 纵向相邻两个小方格中心点的间距)
使用时根据情况修改几个参数就可以了 本帖最后由 cashiba 于 2018-3-6 22:58 编辑
谢谢A大忙中偷闲关注这个小问题,先移走帖子不占位置吧,以后空多的时候再按A大的第一种方法试试.....
{:face (316):} 前来看看。。。 来学习啦{:face (356):}
页:
[1]