c#胖东来小程序自动购物程序(接单,windows桌面程序、linux程序、网络应用等等)

news/2024/10/13 18:23:17

一、程序效果

自动打开胖东来小程序,自动购物

 二、实现

先截屏,然后利用opencv库识别下一步按键所在位置,然后使用mouse_event控制鼠标,模拟人的动作

第一步,截取屏幕

static Bitmap CaptureScreen()
{int screenWidth = Screen.PrimaryScreen.Bounds.Width;int screenHeight = Screen.PrimaryScreen.Bounds.Height;Bitmap screenshot = new Bitmap(screenWidth, screenHeight);using (Graphics graphics = Graphics.FromImage(screenshot)){graphics.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(screenWidth, screenHeight));}return screenshot;
}    

第二步,利用opencv库识别出位置

微信主界面如下

 想要打开小程序,可以识别出上部的搜索栏,点击并输入,首先,需要截取出需要点击的位置

 clickPicture的功能就是先截屏,然后选择路径为path的图片,利用MatchTemplate比较得出图片位置,模拟鼠标点击

static void clickPicture(string path)
{Mat img = OpenCvSharp.Extensions.BitmapConverter.ToMat(CaptureScreen()).CvtColor(ColorConversionCodes.RGB2BGR);Mat templ = new Mat(path, ImreadModes.Color);Mat result = new Mat();Cv2.MatchTemplate(img, templ, result, TemplateMatchModes.CCoeffNormed);Cv2.MinMaxLoc(result, out _, out var maxVal, out var minLoc, out var maxLoc);var matchLoc = maxLoc;MouseEvent(MouseEventType.LeftDown, matchLoc.X + templ.Cols / 2, matchLoc.Y + templ.Rows / 2);Thread.Sleep(100); // 可以添加一些延迟以模拟人工点击MouseEvent(MouseEventType.LeftUp, matchLoc.X + templ.Cols / 2, matchLoc.Y + templ.Rows / 2);
}

然后模拟键盘输入胖东来

Clipboard.SetText("胖东来");
SendKeys.SendWait("^v");

模拟点击下面的小程序搜索

 再模拟点击小程序

 然后依次完成自动购物

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26926.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

优先级翻转实验以及分析现象

优先级翻转实验以及分析现象 优先级翻转指的是高优先级的任务反而慢执行,低优先级的任务反而优先执行。优先级翻转在抢占式内核中是非常常见的,但是在实时操作系统中是不允许出现优先级翻转的,因为优先级翻转会破坏任务的预期顺序,可能会导致未知的严重后果。上图中三个任务…

十日冲刺其六

今天完成了:用户可以自主删除自己发表的空间动态 遇到的困难:不能在浏览空间时进行删除动态,限制因素较多 明天打算,优化一下动态删除功能

将社会脆弱性纳入高分辨率全球洪水风险绘图

贡献 将高分辨率流洪水模型的年平均超标概率估计值与网格化人口和贫困数据相结合,创建了 90 米分辨率的全球洪水脆弱性调整风险指数(VARI Flood)。该指数提供了国家内部或国家之间相对风险的估计值,并通过识别以高密度和高社会脆弱性为特征的 "热点地区",改变了…

acwing351

https://www.acwing.com/activity/content/problem/content/9051/ NOIP2007提高组T4。本题是加强版。 题目描述 设 \(T=(V, E, W)\) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称 \(T\) 为树网(treenetwork),其中 \(V, E\) 分别表示结点与边的集…

day30-JavaScript(2)

1、BOM对象 BOM:Broswer object model,即浏览器提供我们开发者在javascript用于操作浏览器的对象。 1.1、window对象窗口方法// BOM Browser object model 浏览器对象模型// js中最大的一个对象.整个浏览器窗口出现的所有东西都是window对象的内容. console.log( window );// …

mysql 事务日志

事务日志简介 事务有四种特性:原子性、一致性、隔离性、持久性,详情请看《mysql 事务的基础知识》。其中隔离性由锁机制实现,原子性、一致性由 undo 日志(undo log 称为回滚日志,回滚记录到某个特定版本)来保证,持久性则是由 redo 日志(redo log 称为重做日志,提供写操作…

redis集群原理

由于redis主从,哨兵都有一些不便之处,redis就提出了集群的概念,并真正实现了。在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等…

Unity 热更--AssetBundle学习笔记 0.8

AB包的依赖 接上一小结。 在这里我们新建一个红色材质球,赋值给Cube预制体。此时不对材质球进行AB包分类,再次进行打包。运行脚本,发现红色cube成功的从AB包中加载出来。尽管我们没有将cube所依赖的材质球进行打包分类,但是打包时候unity会自动将包中的物体相关依赖打入包中…