按键精灵 如果做两个平行坐标的坐标来回拖动?

您还未登陆,请登录后操作!
悬赏20爱心点
分享到微博
如何使按键精灵在电脑后台自动运行,怎么设置(还要用电脑做其他东西)
请问如何使按键精灵在后台自动运行,怎么设置(还要用电脑做其他东西)
答非所问吗!
youjiwu2004
我问按键精灵的那边他们是如此给我回复的关于您的这个问题,这是按键精灵的一个高级使用技巧。有个插件可以实现键盘的后台模拟功能。具体可以下载6.10正式版来查看我们提供的一个例子,有这个插件的使用方法。
您的举报已经提交成功,我们将尽快处理,谢谢!您的位置:&-&-> -& 按键精灵 9.60 正式版
同类周下载排行
软件授权:共享版 
软件大小:10795KB
人气指数:
软件语言:简体中文
软件评级:
运行环境:Winxp/vista/win7/
更新时间: 11:00:23
出 品 人:&&
软件合集:
  按键精灵可以帮您操作电脑,支持动作录制和回放功能。不需要任何编程知识就可以做出功能强大的脚本。只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成。
  按键精灵内置上百个命令,提供全界面化的操作,更有强大的插件功能扩展,数百位高手制作的上千款插件命令随时供您使用。只有您想不到,没有您找不到!脚本还能够生成独立的小精灵软件,可以发给朋友一起分享。
  按键精灵 : 升级说明:
  通过全球38家杀毒软件最顶级严格检测,无病毒无误报!
  |-- 解决 非会员充值后,用户登陆状态还是普通会员未及时更新问题。
  |-- 解决 会员专区精品教程无法直接进入论坛会员教程专区问题。
  |-- 解决 会员充值成功后,提示信息显示不完全问题。
  |-- 解决 打开学习中心进入按键网,帐号没有自动登陆问题。
  |-- 优化 会员注册成功后,生成免费型小精灵默认去广告。
  |-- 解决 脚本列表上右键选&运行脚本&,按暂停键会无效问题。
  |-- 解决 设置里面的&默认值&对某些设置失效问题。
  |-- 解决 版本升级功能的显示进度数字会重影问题。
  |-- 新增 多行注释功能&/*&*/&。
  |-- 新增 当前脚本在调试状态下,标签名显示&[调试] &字样。
  |-- 新增 添加同名附件时提示是否覆盖。
  |-- 新增 &自动缩进&功能支持清除空行。
  |-- 新增 我的命令库对命令按A~Z排序。
  |-- 解决 编辑脚本时,界面控件名联想不一致问题。
  |-- 解决 源文件视图下使用折叠功能时,会导致一系列操作崩溃问题。
  |-- 解决 使用OCX界面后按保存退出,会弹出提示是否保存问题。
  |-- 解决 新建进入编辑器,马上打开一个脚本会无法调试问题。
  |-- 解决 回车自动格式化功能不能识别NOT关键字问题。
  |-- 解决 插件无帮助时的连接提示,点击时按默认浏览器打开。
  |-- 解决 第一次新建脚本后修改命令库时,调试按钮没变灰问题。
  |-- 解决 新建两个脚本后再打开两个脚本,提示信息不对问题。
  |-- 解决 调试状态下反复按&暂停/继续 &热键会出现异常问题。
  |-- 解决 调试下当命令库有输出信息时,点击会导致软件异常问题。
  |-- 优化 调试下屏蔽自动缩进、智能纠错、查找并替换和保存退出功能。
  |-- 优化 调试信息窗口输出调试内容时,能够显示最后一行内容。
  |-- 新增 容器控件。
  |-- 新增 标签页控件。
  |-- 新增 部分控件支持文字字体和颜色以及背景颜色设置。
  |-- 新增 标签控件背景支持透明设置。
  |-- 新增 鼠标框选时,只要碰到控件边缘就能选中。
  |-- 新增 窗体LoadOver事件,当界面控件和参数都加载完后触发。
  |-- 解决 窗体的Left和Top属性在脚本中获取不到其值的问题。
  |-- 解决 获取输入框控件文本内容时不是字符串问题。
  |-- 解决 输入框控件文本内容删除后,无法保存空内容问题。
  |-- 解决 多脚本之间控件复制后不可以粘贴问题。
  |-- 解决 下拉框控件索引号为0时,返回值变成字符串问题。
  |-- 解决 界面脚本语法错误时,查看界面时提示界面加载失败问题。
  |-- 解决 控件名称可使用数字开头命名问题。
  |-- 解决 控件位置为负数时,复制此控件再粘贴会出现位置溢出问题。
  |-- 解决 多选框控件背景变黑问题。
  |-- 解决 界面右键菜单&剪切&字体变为粗体问题。
  |-- 解决 控件调节点在预览下会被预览窗口擦除掉问题。
  |-- 优化 控件摆放过多时,打开界面时会造成速度缓慢问题。
  |-- 新增 If命令支持&a<b<c&两个同样符号判断表达式,等同于and。
  |-- 解决 我的命令库里命令紊乱问题。
  |-- 解决 上万行的命令库在保存时会出现&内存不足&软件消失问题。
  |-- 解决 启动脚本后插拔USB鼠标会导致电脑蓝屏的问题。
  |-- 解决 定义环境变量为下标时,导致数组使用无效问题。
  |-- 解决 &Select Case&命令不支持函数参数问题。
  |-- 解决 &MsgBox&命令在特殊情况下使用会提示下标越界问题。
  |-- 解决 命令库&判断是否在一条直线上&命令不正确问题。
  |-- 优化 键盘按键和鼠标点击次数编译时进行特殊编译优化。
  |-- 解决 制作小精灵选择背景图片后,会改变当前默认路径问题。
  |-- 解决 自定义界面上随便点击造成自定义信息无法保存问题。
  |-- 解决 无法下载源码库里的脚本问题。
  |-- 解决 需要以管理员身份启动问题。
  |-- 新增 放大镜窗体,增强取色功能(可抓取透明风格窗体颜色)。
  |-- 新增 放大镜窗体,获取颜色实时显示HSL分量。
  |-- 新增 放大镜窗体,恢复抓10点坐标颜色初始状态。
  |-- 新增 找图找色测试功能,支持脚本生成。
  |-- 新增 支持抓点热键自定义设置。
  |-- 新增 查看父窗口句柄信息。
  |-- 新增 查看鼠标在句柄客户区内坐标。
  |-- 新增 鼠标拖动获取窗口句柄。
  |-- 新增 截图时可截取鼠标形状。
  |-- 解决 拖动窗口会卡死的问题。
  |-- 优化 放大镜窗体,扩大放大镜显示范围。
  |-- 优化 句柄树列表调整。
  |-- 优化 主窗体功能布局调整。
热门软件推荐
热门安卓应用推荐
牛华网推荐如何用2014按键精灵计算距离自己最近的物品坐标_百度经验
&&&&&&互联网
分享有回报:
如何用2014按键精灵计算距离自己最近的物品坐标
知识点引入:数学知识:已知坐标求距离已知坐标A(X1,Y1)、B(X2,Y2),那么AB之间的距离有一个计算公式:l=sqr((X1-X2)^2+(Y1-Y2)^2)即:距离等于两个坐标的横坐标之差的平方,加上纵坐标之差的平方,两个平方相加,再取它们的平方根。&算法知识:冒泡排序介绍:冒泡排序(Bubble&Sort),这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,像鱼吐泡泡一样。同样,也可以让越大的元素沉到数列底部。算法原理:冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。[&思路解析:1.获取到人物的坐标,以及各个物品的坐标,存入数组;2.计算人物距离各个物品的坐标距离,存入数组;3.通过各个坐标距离的比较,从而获取到最小距离(距离人物最近的物品)以及最大距离(距离人物最远的物品),输出相对应的物品坐标。&大神代码段://注:coordinate为物品坐标,range为距离,Arr为物品坐标的数组,Ub为物品坐标的最大下界&x&=&300:y&=&330&#39;人物的坐标coordinate&=&&200,300|10,20|60,800|500,321|456,789|421,6|300,320|320,290&&#39;物品(怪物)的坐标&Arr&=&split(coordinate,&&|&)Ub&=&UBound(Arr)&#39;range(Ub)用来存储每个物品离人物的距离,&xx(Ub)用来存储每个物品的X坐标,&yy(Ub)用来存储每个物品的Y坐标Redim&range(Ub),&xx(Ub),&yy(Ub)&#39;计算所有的物品坐标,离人物的距离,存在range数组里For&i&=&0&To&Ub&&&&x1&=&split(Arr(i),&&,&)(0)&:&y1&=&split(Arr(i),&&,&)(1)&&&&xx(i)&=&x1&:&yy(i)&=&y1&&&&range(i)&=&sqr((x1&-&x)&^&2&+&(y1&-&y)&^&2)Next&#39;通过冒泡排序,将人物离每个物品的距离,按照从小到大的顺序排列,并根据距离的排序,相应的调整物品的X坐标和Y坐标在数组中的位置。For&m&=&0&To&Ub&&&&For&n&=&m&+&1&To&Ub&&&&&&&&If&range(m)&&&range(n)&Then&&&&&&&&&&&&&k&=&range(m):range(m)&=&range(n):range(n)&=&k&&&&&&&&&&&&k&=&xx(m):xx(m)&=&xx(n):xx(n)&=&k&&&&&&&&&&&&k&=&yy(m):yy(m)&=&yy(n):y(n)&=&k&&&&&&&&End&If&&&&NextNext&TracePrint&&距离人物最近的坐标为:&&xx(0)&&&&,&&&&yy(0)TracePrint&&距离人物最远的坐标为:&&&&xx(Ub)&&&&,&&&&yy(Ub)&最后知识拓展:各位大大,是不是说,都已经知道了人物坐标和物品坐标了,那还计算什么!乖孩纸们,你们忘记找图代码啦?在游戏中应用的时候,通过找图来获取到人物(或者其他玩意)的坐标,再通过找图来获取到物品(或者其他不明物品)的坐标,不就可以套用上面的思路啦~~萌萌哒~
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
第1期你不知道的iPad技巧1268次分享
第1期win7电脑那些事2160次分享
第2期新人玩转百度经验332次分享
第1期Win8.1实用小技巧1021次分享
第1期小白装大神491次分享
请扫描分享到朋友圈你的位置:
教你用按键精灵做QQ连连看辅助
来源: 按键精灵资源站
[i=s] 本帖最后由 coolstar2006 于
10:34 编辑
& & 看到一个QQ连连看辅助帖子,是用C++写的,就想尝试一下用按键来实现,本人也是新手,搞了一晚上,终于是基本实现了,不过效率不高,速度上比C++实现差了不少,在此希望大神儿们多多指点。下面来分享下心得。首先就是找游戏基址了,进入QQ游戏大厅,打开连连看游戏,并用CE6.2加载
下载地址请访问原帖
点击练习按钮,进入练习模式,出现游戏,第一个位置为空,如果不是,请多点几次练习按钮。
下载地址请访问原帖
在CE中,扫描类型选择精确数值,数值类型选择字节,值为0,点击首次扫描,这时会出现很多的扫描结果
下载地址请访问原帖
接着我们回到游戏中,点击练习按钮,使游戏中第一位置不为空,切换到CE界面,扫描类型选择变动的数值,点击再次扫描,这是结果就会减少很多,当然选择 大于...的值 也可以,大家可以自由发挥。
下载地址请访问原帖之后再次点击练习按钮,使棋盘第一位置改变,如果棋子改变扫描类型就选择变动的数值,如果为空则选择精确数值,值为0,如此循环,直到得出唯一的结果,<font color="#ffA1BC 就是我们要找的棋盘第一个棋子的基址。
下载地址请访问原帖
在CE中,我们在找到的基址上点击右键,选择浏览相关内存区域
下载地址请访问原帖下载地址请访问原帖
& & 我们对比一下游戏中的棋子与内存中的数据,我们已经知道第一个棋子的内存地址是 0018A1BC,它的值是14,那么说明“手”这个棋子在内存中的十六进制表示就是14,我们看红框圈出的两个相同的手,在内存中对应的同样是红框圈出的两个数值。
每行有19个棋子,一共有11行,我们在内存中又开始依次向后找,可以得到蓝框圈出的棋子在内存中的对应位置,由此我们可以得到每一个棋子在内存中所对应的位置,即 第r行,第c列的棋子对应的内存地址为 &H0018A1BC+(r-1)*19+(c-1) 。
& & 现在,我们有了棋盘的数据,我们通过来读取内存数据。CODE:Dim chess_data(11, 19)&&// 定义棋盘数组
Hwnd = Plugin.Window.Find(0, &QQ游戏 - 连连看角色版&)& &//获取连连看窗口句柄首先,我们定义一个数组用来保存棋盘数据,然后我们获取游戏窗口句柄。CODE:Sub 更新棋盘数据()& & // 定义子程序
& & Dim r,c
& & For r = 1 To 11& && && &//遍历棋盘
& && &&&For c = 1 To 19
& && && && &chess_data(r, c) = Plugin.Memory.Read8Bit(Hwnd, &H18A1BC + (c - 1) + (r - 1) * 19)& & //读取棋盘数据
& && &&&Next
End Sub我们定义一个更新棋盘数据的子程序,通过两个for 循环,遍历整个11*19 棋盘的棋子情况,并通过按键的内存读出棋子数据,保存到棋盘数组中。
& & 数据有了,下面我们要考虑的就是如何去比较、消除了。CODE:Sub 消除()&&
Dim r1,r2,c1,c2&&// 消除两个棋子,r1,c1为第一个棋子的行和列,r2,c2为第二个棋子的行和列
For r1 = 1 To 11
For c1 = 1 To 19
&&For r2 = r1 To 11
& &For c2 = 1 To 19
& & If chess_data(r1, c1) = chess_data(r2, c2) Then& & // 判断棋子是否相等
& &&&If chess_data(r1, c1) && 0 Then& &&&//判断棋子是否为空
& && &If r1 && r2 or c1 && c2 Then& & //判断是否为同一个棋子
& && & If checkchess(r1,c1,r2,c2) = true Then&&//判断棋子可否消除
& && &&&m = clear2chess(r1, c1, r2, c2)& & //消除棋子
& && & End If
& && &End If
& &&&End If
& & End If
Call 更新棋盘数据()
End Sub消除的过程就是这样了,下面我们补充 checkchess()(检查两个棋子是否可以消除,可以则返回true) 和 clear2chess() (消除两个棋子)这两个函数。
下载地址请访问原帖&&
& & 连连看游戏的消除规则是,两个棋子用三条或三条以下直线连接便可以消除,我们只要判断这三条线上的棋子位置是否全部为0,如果是则表示这两个棋子可以消除,返回true。
& & 判断是否可以消除:(1)一条线消除情况:如绿线所示,这种情况两棋子位于同一行或同一列。
            定义一个函数 linkchess() 用于判断这种情况下是否可以消除CODE:Function linkchess(r1, c1, r2, c2)
linkchess=true
If r1 = r2 Then& && & //两个棋子在同一行
&&If c1 & c2 Then
& &temp = c1:c1=c2:c2=temp
&&For i = c1+1 To c2-1
& &If chess_data(r1,i) && 0 Then
& & linkchess = false
If c1 = c2 Then& && && &//两个棋子在同一列
&&If r1 & r2 Then
& &temp=r1:r1=r2:r2=temp
&&For j = r1 + 1 To r2-1
& &If chess_data(j,c1) && 0 Then
& & linkchess=false
// TracePrint r1&&,&&c1&& &&r2&&,&&c2
// MessageBox linkchess
End Function  (2)两条线消除情况:如黑线所示,标出了两条线消除的两种路线,每种路线有一个交点有黄框表示,判断这两个交点是否为0,若某交点为0,在用(1)中函数判断每个棋子到交点是否可消除,如果是则可两条线消除。
下载地址请访问原帖
(3)三条线消除情况:①行遍历:如图中红线所示,黄框表示其两个交点,判断这两个交点是否同时为0,然后通过(1)中函数判断棋子一到交点一,棋子二到交点二,以及两交点之间是否所有棋子都为0,如果是,则可消除,返回TRUE。
& && && &&&②列遍历:同理。
& && &&&由于三条线消除情况线路较多,不在同一行时需遍历所有列,不在同一列需遍历所有行,因此加入两个for 循环,见代码。CODE:Function checkchess(r1, c1, r2, c2)//检查可否消除
checkchess = false
If r1 = r2 or c1 = c2 Then& &//两个棋子在同一行或同一列
&&If linkchess(r1, c1, r2, c2) = true Then
& &checkchess=true
If chess_data(r1, c2) = 0 or chess_data(r2, c1) = 0 Then& &//两条线消除时,两个交点任一为空
&&If linkchess(r1, c1, r1, c2) = true and linkchess(r2, c2, r1, c2) = true and chess_data(r1, c2) = 0 or linkchess(r1, c1, r2, c1) = true and linkchess(r2, c2, r2, c1) = true and chess_data(r2, c1) = 0 Then
& &checkchess = true
If r1 && r2 Then&&//三条线消除时,两个棋子不在同一行
&&For x = 1 To 19
& &If chess_data(r1, x) = 0 and chess_data(r2, x) = 0 and linkchess(r1, c1, r1, x) and linkchess(r2, c2, r2, x) and linkchess(r1, x, r2, x) Then
& & checkchess = true
If c1 && c2 Then& &//三条线消除时,两棋子不在同一列
&&For y = 1 To 11
& &If chess_data(y, c1) = 0 and chess_data(y, c2) = 0 and linkchess(r1, c1, y, c1) and linkchess(r2, c2, y, c2) and linkchess(y, c1, y, c2) Then
& & checkchess = true
// TracePrint r1&&,&&c1&& &&r2&&,&&c2
// MessageBox checkchess
End Function这样我们便可以判断两个棋子是否可以消除了,下面我们要做的就是模拟鼠标点击来消除两个棋子。
利用抓抓,我们可以得到,第一个棋子的坐标为(23,193),棋盘高594,宽388,那么594/23≈31,388/11≈35,每个棋子的坐标&&第r行第c列的棋子坐标为 (23 + (c - 1) * 31,193 + (r - 1) * 35)。CODE:Function clear2chess(r1, c1, r2, c2)
Call Plugin.Bkgnd.LeftClick(Hwnd, 23 + (c1 - 1) * 31, 193 + (r1 - 1) * 35)
Call Plugin.Bkgnd.LeftClick(Hwnd, 23 + (c2 - 1) * 31, 193 + (r2 - 1) * 35)
clear2chess=true
End Function延迟可以根据自己的机器及网络情况做相应调整。
好了,至此,我们需要的功能函数全部实现了,我们用一个无限循环来重复调用 子程序 消除(),以达到消去所有棋子的目的。CODE:while num & 0
Call 消除()
Wend为了进一步完善程序,我们添加一个剩余棋子数的判断,通过CE找到剩余棋子数的基址,在上述循环中做判定,完整源代码中已完成,大家可以借鉴。
& && & 到这里,脚本基本上就写完了,测试发现,效率不是很高,由于每个棋子数据都要读取一次内存,而且遍历一次后更新棋盘数据又要重新读取一次内存,导致了效率较低,希望大神儿们指点。
下载地址请访问原帖

我要回帖

更多关于 按键精灵坐标 的文章