作者:大脑
背景:四大风险咨询的小朋友
R的魅力十有八九是因为有千奇百怪的package.rvest, httr, rcurl, rselenium组成了处理各式各样web task的“特工队”;rcpp, rjava, reticulate使得R拥有写轮眼,能够克隆C++,java,python等其他编程语言的能力;mlr,caret提供了统计建模的统一接口,使得R繁杂的建模包能听懂“同一种语言”;......。
今天要说的clickpaste包则是使得R拥有”按键精灵”的能力,通过模拟鼠标和键盘来操作第三方应用程序。说起这个包的起源,也正是因为我碰到了一个场景需要操作第三方的程序界面,并做出成千上万次的重复动作。
1.clickpaste包简介:
包括一个类:click_paste,六个方法:get_point,single_click;double_click,right_click,paste,press。
library(clickpaste)
#创建一个不明确像素坐标的对象
point_1<-click_paste$new()
#创建一个包括像素坐标的对象
point_2<-click_paste$new(100,100)
#通过get_point方法获得鼠标处的坐标或刷新对象原有的坐标
point_1$get_point()
point_2$get_point()
point_1$point_x
[1] 853
point_1$point_y
[1] 180
point_2$point_x
[1] 853
point_2$point_y
[1] 180
#编辑还原point_1和point_2的坐标
point_1$point_x<-NULL
point_1$point_y<-NULL
point_2$point_x<-100
point_2$point_y<-100
#点击100,100的像素坐标,两种方法相同的效果
point_1$single_click(100,100)
point_2$single_click()
#右击100,100的像素坐标
point_1$right_click(100,100)
point_2$right_click()
#黏贴/输入文本,这个方法本来和像素坐标没关系,但是因为没时间,我就没有单独写一个函数point_1$paste("hello world")
point_1$paste("你好")
#模拟按键,这个方法也和像素坐标没关系
point_1$press("1") #按1
point_1$press("a") #按a
point_1$press("enter") #按回车
point_1$press("alter") #按alt
point_1$press("control") #按ctrl
point_1$press("backspace") #按backspace
#press目前支持的按键有1:9 a:zF1:F12 回车 backspace delete control alter shift escape
2.应用场景
每天开机从某听书APP搜索符合一定规定的音频批量下载;
录制一个脚本玩贪食蛇;
。。。
3.下载链接:
1.编译好的包:https://pan.baidu.com/s/1i5FZArb
2.https://github.com/brainrot/clickpaste
4.新特性(试验中)
4.1.新特性1:现在我们可以把多条命令连接在一起
4.2新特性2:增加了新的方法sleep和sys.sleep效果一样,不过可以被连接,当第三方程序需要有反应时间的时候可能有用
例子:
y<-click_paste$new(50,50)
y$single_click()$single_click(100,100)$right_click(200,200)$sleep(5)$double_click()$paste("chain")$press("f1")
4.3下载地址:
编译好的包
http://pan.baidu.com/s/1nvPuRAp
Github地址(我的c++写得太烂,请高手多帮助)
https://github.com/brainrot/clickpastec
温馨提示:点击阅读原文,即可进入Github查看相关最新资料!