最近闲下来,刚好朋友叫我研究一下autojs,然后就抽空看了下Api,写了一个基于Autojs的微信自动回复消息的脚本。
实现思路如下。
1打开微信,点击"微信"按钮选中列表界面
2截图,然后找到截图中红色的小点
3点击小红点那个item进入聊天
4自动回复消息
5返回到微信聊天列表界面
// 导入OpenCV模块
var cv = require("opencv");
// 读取图像
var img1 = cvimread("/sdcard/img1jpg");
var img2 = cvimread("/sdcard/img2jpg");
// 创建SIFT检测器对象
var sift = new cvFeatureDetector("SIFT");
// 检测图像中的关键点和描述符
var keypoints1 = siftdetect(img1);
var keypoints2 = siftdetect(img2);
var descriptors1 = siftcompute(img1, keypoints1);
var descriptors2 = siftcompute(img2, keypoints2);
// 创建FLANN匹配器对象
var matcher = new cvMatcher("FlannBased");
// 对两幅图像中的关键点进行匹配
var matches = matchermatch(descriptors1, descriptors2);
// 筛选出最优的匹配结果
var bestMatches = matcherfilterMatches(matches, 075);
// 在两幅图像中绘制匹配结果
var output = new cvMat();
cvdrawMatches(img1, keypoints1, img2, keypoints2, bestMatches, output);
// 保存匹配结果图像
cvimwrite("/sdcard/matchesjpg", output);
以上代码中,我们使用了AutoJS的require()函数导入OpenCV模块,并使用cvimread()函数读取了两幅图像。然后,我们创建了一个SIFT检测器对象,并使用它检测了两幅图像中的关键点和描述符。接着,我们创建了一个FLANN匹配器对象,并使用它对两幅图像中的关键点进行了匹配。最后,我们筛选出了最优的匹配结果,并使用cvdrawMatches()函数在两幅图像中绘制了匹配结果,并将结果保存到了本地。
主要是Goto 继续——Rem 继续 如何转化和 颜色判断中的“如果是则执行A,否则执行B”怎么写 其他的没问题了 下面是参考代码 Rem 继续 MoveTo 826, 296 Delay 1000 LeftClick 1 Delay 5000 IfColor 928,663,"232352",2 Then MoveTo 928,663 Delay 3000 LeftClick 1 Else MoveTo 706, 577 LeftClick 1 MoveTo 801, 249 Delay 3000 LeftClick 1 MoveTo 728, 577 Delay 3000 LeftClick 1 MoveTo 614, 447 Delay 3000 LeftClick 1 MoveTo 739, 291 Delay 3000 LeftClick 1 MoveTo 952, 652 Delay 3000 LeftClick 1 End If Delay 120000 For 20 Delay 5000 IfColor 1140,680,"FFFFFF",0 Then MoveTo 1145, 678 LeftClick 1 Delay 15000 Goto 继续 Else MoveTo 790, 450 Delay 3000 LeftClick 1 MoveTo 728, 580 Delay 3000 LeftClick 1 End If Next
Autojs是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。
Autojs使用JavaScript作为脚本语言,目前使用Rhino 1772作为脚本引擎,支持ES5与部分ES6特性。
没用可能是click函数返回值不是false吧 既然是js 那我就写两个猜测的方法你可以替换上边的代码 试试看
1 就是删了叹号
while(click(555,1641,783,1869));2 写个js方法
function auto(){click(555,1641,783,1869);
setTimeout(auto,1000);
//多少秒执行一次 上面的参数就填 秒数乘1000 上述 一秒调用一次
}
auto();
欢迎分享,转载请注明来源:表白网
评论列表(0条)