• 新浪微博:
  • 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.6.9
软件大小:46.2M
更新时间:03-02

按键精灵iOS版
立即下载

软件版本:1.7.6
软件大小:29.2M
更新时间:12-06

按键手机助手
立即下载

软件版本:3.7.6
软件大小:262M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201410期】键鼠同步器源码下载——源码分析 [复制链接]

1#

键鼠同步器源码下载——源码分析



小编之前也有使用过其它大牛编写的游戏同步的脚本,突然间对于它是如何实现同步感到十分好奇,我们一起来研究看看,同步到底是怎么实现的吧~

NO.1-同步的前提


[backcolor=rgb(46, 139, 87)]前提
[backcolor=rgb(154, 205, 50)] 1 同步的两个窗口需要是同一个应用窗口,并且窗口大小要相同
[backcolor=rgb(154, 205, 50)] 2 同步窗口可以接收到按键的键鼠发送信息
[backcolor=rgb(154, 205, 50)] 3 [backcolor=rgb(255, 255, 255)]同步的窗口支持后台键鼠操作



NO.2-本节例子及其能实现的功能

[backcolor=rgb(46, 139, 87)]例子
[backcolor=rgb(154, 205, 50)] 1 画图工具,实现同步画图
[backcolor=rgb(154, 205, 50)] 2 记事本,实现同步删除内容
[backcolor=rgb(154, 205, 50)] 功能 键鼠同步
支持组合键



NO.3-思路大剖析

[backcolor=rgb(46, 139, 87)]思路步骤

[backcolor=rgb(154, 205, 50)]1 获取主窗口和被同步窗口句柄


WaitKey 命令等待键盘按下
按下F6则获取当前鼠标指向的窗口句柄,作为主窗口句柄
按下F7 则获取当前鼠标指向的窗口句柄,作为同步窗口句柄。

用Do循环来等待按键,当主窗口句柄和同步窗口句柄都获取到时,退出Do循环

[backcolor=rgb(105, 105, 105)]代码
  1. Do
  2. Key = WaitKey()
  3. If Key = 117 Then
  4. 主窗口 = Plugin.Window.MousePoint()
  5. End If
  6. If Key = 118 Then
  7. 同步窗口 = Plugin.Window.MousePoint()
  8. End If
  9. Delay 500
  10. If 主窗口 [backcolor=rgb(154, 205, 50)]2 设置两个窗口的窗口大小一致

    窗口大小一致,同步的时候鼠标才能移动到正确的位置。

    [backcolor=rgb(105, 105, 105)]代码 0 and 同步窗口 [backcolor=rgb(154, 205, 50)]3 获取主窗口的左上角坐标

    GetWindowRect 命令获取主窗口的左上角坐标
    [backcolor=rgb(105, 105, 105)]代码 0 Then
  11. Exit Do
  12. End If
  13. Loop
复制代码
[backcolor=rgb(154, 205, 50)]4 获取当前鼠标在主窗口的位置

GetCursorPos命令获取当前鼠标位置
[backcolor=rgb(105, 105, 105)]代码
  1. Call Plugin.Window.Size(主窗口,800,600)
  2. Call Plugin.Window.Size(同步窗口,800,600)
复制代码
[backcolor=rgb(154, 205, 50)]5 计算主窗口内当前鼠标位置和窗口左上角距离

公式:当前鼠标位置减去窗口左上角坐标值([backcolor=rgb(247, 247, 247)] mx-L, my-T

[backcolor=rgb(154, 205, 50)]6 开始同步

被同步窗口,使用按键后台键鼠命令,将鼠标移动到和主窗口相同的位置
按键后台命令鼠标移动是以窗口客户区左上角坐标为基点

[backcolor=rgb(105, 105, 105)]代码
  1. sRect = Plugin.Window.GetWindowRect(主窗口)
  2. dim MyArray
  3. MyArray = Split(sRect, "|")
  4. L = Clng(MyArray(0)): T = Clng(MyArray(1))
复制代码
●在主窗口内按下任意键时,同步窗口也执行同样的操作
[backcolor=rgb(105, 105, 105)]代码
  1. GetCursorPos mx, my
复制代码





NO.4-代码

[backcolor=rgb(46, 139, 87)]代码

  1. Call Plugin.Bkgnd.MoveTo(同步窗口, mx-L, my-T)
复制代码




NO.5-效果演示

[backcolor=rgb(46, 139, 87)]演示


[backcolor=rgb(154, 205, 50)] 画图[backcolor=rgb(154, 205, 50)]

您所在的用户组无法下载或查看附件




[backcolor=rgb(154, 205, 50)] 记事本[backcolor=rgb(154, 205, 50)]

您所在的用户组无法下载或查看附件



[backcolor=rgb(105, 105, 105)]注意 画图和记事本,获取窗口句柄的时候请点击白白的客户区进行获取,因为我们是要对它的客户区进行操作




NO.6-温馨小提示


[backcolor=rgb(46, 139, 87)]温馨小提示
[backcolor=rgb(154, 205, 50)] [backcolor=rgb(154, 205, 50)]*[backcolor=rgb(154, 205, 50)] 游戏窗口中的同步,需要注意几个窗口中人物的朝向和坐标是否相同[backcolor=rgb(154, 205, 50)]
[backcolor=rgb(154, 205, 50)] [backcolor=rgb(154, 205, 50)]*[backcolor=rgb(154, 205, 50)] 如果坐标朝向不同,一个窗口里的角色往西边走一个往北边走,就无法达到预期同步任务的效果


如果童鞋们对于本帖里的内容有疑问或者建议,欢迎跟帖讨论~~



本文由按键学院提供技术支持

2个月学会赚大钱的脚本,报名倒计时10天
按键学院10月实战班卷土来袭

 
 

本主题由 超级版主 瑞祥幽冥狼 于 2022/5/8 20:25:56 执行 审核帖子 操作
按键学院免费交流群:376122403

按键学院招生计划
按键学院系统教程
2#

zhengbai008

组别高中一年级 UID759211 帖子509 积分509 鲜花10 朵 铜币1084 个 银币137 个 金币0 个 注册时间2011-09-01 7# 字体大小: t T 发表于 2014-10-10 18:14 | |只看该用户
学习学习 zhengbai008

组别高中一年级 UID759211 帖子509 积分509 鲜花10 朵 铜币1084 个 银币137 个 金币0 个 注册时间2011-09-01 7# 字体大小: t T 发表于 2014-10-10 18:14 | |只看该用户
学习学习 zhengbai008

组别高中一年级 UID759211 帖子509 积分509 鲜花10 朵 铜币1084 个 银币137 个 金币0 个 注册时间2011-09-01 7# 字体大小: t T 发表于 2014-10-10 18:14 | |只看该用户
学习学习

3#

正需要 谢谢了

[url=http://bbs.anjian.com/thread-576954-1-1.html]<strong><font size="4">按键精灵14周年庆典火热进行中!点击领奖[
4#

院刊】-【201410期】键鼠同步器源码下载——源码分析修改.

5#

看看你的 咋样

6#

kan 看学习一下

7#

有没搞错

8#

我是来学习

9#

不错,值得学习

10#


11#

新知识,没见过

12#

55555555555555

13#

不错

14#

看下远吗学习

15#

学习~~~~

16#

学习一下

17#

看到了很牛逼的影子

代接各种网络游戏游戏脚本,点击联系→

全程担保交易安全放心,(无需定金)远离诈骗
18#

我真没搞懂你鼠标按下 跟 点击他怎么识别了

代接各种网络游戏游戏脚本,点击联系→

全程担保交易安全放心,(无需定金)远离诈骗
19#

看看再讲

20#


发新话题 回复该主题