单客户端,先识别屏幕大小,(取睁虚迹屏幕宽、高),比如 屏幕高度-指定高度 ;屏幕宽度-指定宽度,指定的高和宽越大窗口就越靠上和右,指定好窗口用win32API也好用,dm插件也好,用模块也好,都可以找这个你要的图片了
客户端+服务端
客户端誉旁没什么好讲的和上面一样,客户端发送压缩图片给服务端即可悉并,也可以1秒发送一张,这样你可以链接成动画了,还可以 *** 作他的鼠标(E语言自带的,客户端,服务端可以做到),往后写就可以写成肉鸡了,可以监控他的电脑 *** 作他的鼠标,包括扫描那些电脑有运行过客户端,发送IP地址给服务端,还可以通过外网映射远程监控广域网的电脑,有点偏题了!
很简单,看代码:无限循环检测
.版本 2
.支持库 EThread
.支持库 eAPI
.程序集 窗口程序集1
.子程序 __启动窗此拿口_创建完毕
检测时钟.时钟周期 = 50
.子程序 _检测时钟_周期事件
.如果真 (进程是否存在 (“a.dll”) = 真)
启动线程 森雀搭(&截图线程, , )
检测时钟.时钟周期 = 0
.如果真结束
.子程序 截图线程
.局部变量 次数, 整数型
次数 = 60 ÷ 3
.计次循环首 (次数, i) ' 60秒÷ 3秒=截图次数
延时 (3000) ' 间隔3秒
写到岁兄文件 (“d:\5566\” + 到文本 (i) + “.bmp”, 快照 (, , ))
.如果真 (i = 次数)
检测时钟.时钟周期 = 50
跳出循环 ()
.如果真结束
.计次循环尾 ()
.子程序 进程是否存在
.参数 进程名, 文本型
.局部变量 进程信息, 进程信息, , "0"
.局部变量 i, 整数型
.局部变量 存在, 逻辑型
进程信息 = 取系统进程列表 ()
存在 = 假
.计次循环首 (取数组成员数 (进程信息), i)
.如果真 (进程信息.进程名称 = 进程名)
存在 = 真
.如果真结束
.计次循环尾 ()
返回 (存在)
用模糊找图即可。
(网速太慢,演示图发不上来……)
源码:
.版本 2.支持库 BmpOperate
.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 目标图片, 字节集
.子程序 __启动窗口_创建完毕
目标图片 = 读入文件 (取运行目录 () + “\Test.bmp”)
.子程序 找图, 坐标型, , 成功返回坐标,失败返回 -1 -1。此子程序来自易语言学网。
.参数 原图象数据, 字节集
.参数 目标图片数据, 字节集
.参数 悄空误差值, 整数型, 可空
.参数 吻合值, 整数型, 可空, 空为100
.局部变量 原图象, 位图
.局部变量 目标图片, 位图
.局部变量 i, 整数型
.局部变量 i2, 整数型
.局部变量 i3, 整数型
.局部变量 i4, 整数型
.局部变量 基色, 整数型
.局部变量 基点色, 整数型
.局部变量 已吻合值, 整数型
.局部变量 已不吻合值, 整数型
.局部变量 不吻合值, 整数型
.局部变量 总长, 整数型
.局部变量 临时颜色值, 整数型
.局部变量 位置, 坐标型
.局部变量 坐标, 坐标型, , , 返还目标图片左上角所在坐标
.局部变量 基点, 坐标型
' 首先声明,本源码并非Moden 个人原创,部分思路源自于网络
' 本源码经Moden 修改,减少找图的时间,找图在 几十毫秒左右 (没找到的情况下)在找到的情况下 (吻合值 100) 大约在 100毫秒左右 (具体的估计还得看不同的电脑配置)
.如果真 (吻合值 = 0)
吻合值 = 100
.如果真结束
.如果真 (误差值 = 0)
误差值 = 100
.如果真结束
原图象.载入数据 (原图象数据)
目标图片.载入数据 (目标图片数据)
总长 = 目标图片.取宽度 () × 目标图片.取高度 ()
吻合值 = 总长 × 吻合值 \ 100
.如果 (吻合值 = 总长)
不吻合值 = 1
.否则
不吻合值 = 总长 - 吻合值启戚瞎 + 1
.如果结束
误差值 = 取绝对值 (误差值 × 16777215 \ 100000)
置随机数种子 ()
基点.x = 取随机数 (0, 目标图片.取宽度 () - 1)
基点.y = 取随机数 (0, 目标图片.取高度 () - 1)
基色 = 目标图片.取某点颜色 (基点.x, 基点.y)
.计次循环首 (原图象.取宽度 (), i)
.计次循环首 (原图象.取高度 (), i2)
基点色 = 原图象.取某点颜色 (i - 1, i2 - 1) ' 取大图片中某点色
.如果真 (取绝对值 (基点色 - 基色) ≤ 误差值) ' 取起点颜色值
已吻合值 = 0
已不吻合值 = 0
.计次循环首 (目标图片.取宽度 (), i3) ' 循环判断颜色值
.计次循环首 (目标图片.取高度 (), i4)
位置.x = i + i3 - 2 - 基点.x
.如果真 (位置.x > 原图象.取宽度 () - 1 或 位置.x < 0)
跳出循环 ()
.如果真结束
位置.y = i2 + i4 - 2 - 基点.y
.如果真 (原图象.取高度 () - 1 < 位置.y 或 位置.y < 0)
跳出循环 ()
.如果真结束
临时颜色值 = 取绝对值 (原图象.取某点颜色 (位置.x, 位置.y) - 目标图片.取某点颜色 (i3 - 1, i4 - 1))
.如果 (临时颜色值 ≤ 误差值)
已吻合值 = 已吻合值 + 1
.否则
已不吻合值 = 已不吻合值 + 1
.如果结束
.如果真 (已吻合值 ≥ 吻合值)
坐标.x = i - 1 - 基点.x
坐标.y = i2 - 1 - 基点.y
返回 (坐标)
.如果真结束
.如果真 (已不吻合值 ≥ 不吻合值)
跳出循环 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.如果真 (已不吻合值 ≥ 不仔唤吻合值)
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.计次循环尾 ()
坐标.x = -1
坐标.y = -1
返回 (坐标)
.子程序 _按钮1_被单击
.局部变量 截取的图, 字节集
.局部变量 找图坐标, 坐标型
截取的图 = 截取屏幕区域 (, #接口常量.到字节集, )
写到文件 (取运行目录 () + “\1.bmp”, 截取的图)
找图坐标 = 找图 (截取的图, 目标图片, 50, 50)
.如果真 (找图坐标.x ≠ -1)
信息框 (“屏幕内有图。坐标 (” + 到文本 (找图坐标.x) + “, ” + 到文本 (找图坐标.y) + “)”, 0, )
.如果真结束
自定义数据类型:
.版本 2.数据类型 坐标型
.成员 x
.成员 y
源码文件:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)