TC官方合作论坛

 找回密码
 立即注册
查看: 3899|回复: 11

求助关于大漠插件的moveto函数

[复制链接]
发表于 2015-1-12 22:16:15 | 显示全部楼层 |阅读模式
    才开始学习做辅助,碰到一个问题,请教下大家是怎么解决的。

    1.网页类游戏的辅助,我是在TC的窗体上放了一个浏览器控件。

   

    2.点击 启动辅助按钮的响应方法中,注册了大漠插件并绑定到游戏的句柄。
    dm_ret = 大漠对象.BindWindow(游戏句柄,"normal","normal","normal",0)

    3.启动了一个线程
    挂机句柄 = 线程.开启("游戏辅助.定点挂机",0)

    4.定点挂机方法内又注册了一个大漠插件,绑定成功后,模拟鼠标在游戏界面移动和点击
功能 定点挂机(参数1)
    //创建大漠对象
    大漠任务对象 = com("dm.dmsoft")
    大漠任务对象.SetPath(辅助.获取资源路径("rc:"))

    //绑定游戏句柄
    dm_ret = 大漠任务对象.BindWindow(游戏句柄,"normal","normal","normal",0)
   
    如果(dm_ret==1)
        //绑定成功

        循环(真)
            大漠任务对象.MoveTo(647,100)
            辅助.等待(2000)
            大漠任务对象.LeftClick()
            辅助.等待(2000)
   
            大漠任务对象.MoveTo(462,373)
            辅助.等待(2000)
            大漠任务对象.LeftClick()
            辅助.等待(2000)
        循环结束
    否则
        //绑定出错
        错误码 = 大漠任务对象.GetLastError()
        调试输出("[定点挂机] 绑定游戏句柄失败,返回值:"&dm_ret&",错误代码:"&错误码)
    如果结束
功能结束

问题:游戏窗口没有被遮挡的时候是OK的,被遮挡时,模拟的点击,点到遮挡它的窗体上去了,请问这个问题如何解决?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2015-1-12 22:24:56 | 显示全部楼层
你用的是前台模式,绑定的时候用后台图色、键盘、鼠标来绑定就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-12 22:36:05 | 显示全部楼层
你说的是这种方式绑定吗?我也试过,也是一样的问题。
dm_ret = 大漠对象.BindWindow(游戏句柄,"gdi","windows","windows",0)
回复 支持 反对

使用道具 举报

发表于 2015-1-13 00:08:54 | 显示全部楼层
句柄获取的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-13 08:54:36 | 显示全部楼层
游戏句柄获取的是Flash的句柄 有问题吗?  应该是用哪个句柄呢?
回复 支持 反对

使用道具 举报

发表于 2015-1-13 15:17:49 | 显示全部楼层
首先你用的是前台模式
第二个,你在线程里面又创建了大漠对象,你最新的大漠对象和你绑定的大漠对象不是同一个,操作的窗体其实已经不是你绑定的窗体了,二世整个屏幕了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-13 21:55:49 | 显示全部楼层
地狱骑士 发表于 2015-1-13 15:17
首先你用的是前台模式
第二个,你在线程里面又创建了大漠对象,你最新的大漠对象和你绑定的大漠对象不是同 ...

谢谢你的回答

不过问题应该不是出在这里,首先说前台模式,如果换成后台模式,测试调用LeftClick函数没有响应,而使用前台模式,其他代码不变,是能够正常点到制定位置的按钮的。

其实前面一个大漠对象可以忽略,创建了没使用但不影响后面的代码,再说重新创建的大漠对象,后面一个大漠对象绑定是成功的,调用MoveTo函数也能正确的移动到我指定的位置,只是这个位置在被遮挡的情况下,激活了遮挡它的程序,所以绑定的窗口是正确的。

我想问一下,大伙儿都是用的付费大漠吗?是否因为免费版本的原因呢?

回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:09:03 | 显示全部楼层
abclove 发表于 2015-1-13 21:55
谢谢你的回答

不过问题应该不是出在这里,首先说前台模式,如果换成后台模式,测试调用LeftClick函数没 ...

你绑定的是前台,被其他窗口遮挡的时候点到其他窗口,这是正常情况

一般用免费的,有时候根据情况需要会用收费的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-16 09:04:18 | 显示全部楼层
地狱骑士 发表于 2015-1-15 16:09
你绑定的是前台,被其他窗口遮挡的时候点到其他窗口,这是正常情况

一般用免费的,有时候根据情况需要会 ...

改成后台的,
dm_ret = 大漠任务对象.BindWindow(窗口句柄,"gdi","windows3","normal",1)
确实没有了遮挡的问题。

新的问题又来了,
如果(dm_ret==1)
        大漠任务对象.MoveTo(36,200)
        大漠任务对象.LeftClick()
如果结束

就只是模拟移动到36,200并单击,如果前台绑定的方式运行正常,如果用后台绑定,要么就只移动不点击,要么就点击了两次。。。。
回复 支持 反对

使用道具 举报

发表于 2015-1-20 13:42:29 | 显示全部楼层
abclove 发表于 2015-1-16 09:04
改成后台的,
dm_ret = 大漠任务对象.BindWindow(窗口句柄,"gdi","windows3","normal",1)
确实没有了遮挡 ...

移动和点击之间加个延迟
另外后台的时候有可能点击也有可能不惦记
首先这个肯定是模式的问题
第二,我个人觉得你应该观察他能点击和不能点击的情况有什么特征,比如你窗口在最前面的时候你测试,可以点击,或者被其他窗口挡住的时候可以点击,这个都是有区别的,总的来说都是模式问题。但是有一些游戏是可能找不到完美的点击模式,只能用一些带有缺陷的,比如我现在在写的那个游戏,点击的时候游戏窗口必须不在最前面,或者鼠标不在游戏内。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-18 19:51 , Processed in 0.041314 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表