mimi_rice 发表于 2015-6-15 16:28:07

后台脚本单开变多开 So—Eazy



后台脚本单开变多开So—Eazy
本文由按键学院提供技术支持



按键学院交流①群(1群已满):376122403按键学院交流②群(2群):372671254按键学院交流③群(3群):170084238
{:4_87:}我们现在常说的脚本多开主要是通过后台+多线程来实现的,但是经常发现有些小伙伴对多线程不大了解,好不容易写了一个后台的脚本出来,却不知道如何把后台单开脚本改成多开的,于是小编这次去查阅了一些资料,由易而难的整合了下目前按键实现多开的比较传统的几种方法分享给大家,可能不少童鞋都知道了,但是相信对于新手还是挺有帮助的

方法1、重复启动

这种方法就是在脚本编辑界面左边的脚本属性设置里,把“禁止重复运行”取消勾选,这样把脚本制作成免费小精灵后就可以重复启动了,按一次启动热键就会启动一次脚本,实现了多开,如图所示



优点:超级简单、无需修改任何代码、轻轻一点即可实现多开,特别适合新手

缺点:如果要每个窗口不同设置,需要在启动前进行修改保存再启动,设置上比较繁琐,容易弄乱,且单停也需要修改停止热键后启动来区分


方法2、复制多份脚本打包

直接写好一个单开的后台运行脚本,然后新建一个脚本把源码复制过去或者导出q文件到其他地方再添加,启动与停止热键修改不一样,集合打包生成一个小精灵里使用即可(商业独立QUI版本的小精灵同样可以这样)
打包后界面是这样的,会以多标签的模式显示,可以相互切换设置界面



优点:相对来讲也较为简单方便快捷,因为界面分开显示,能较直观的看出每个窗口执行的功能,另外通过分别设置不同的停止热键就可以实现多开单停效果

缺点:每个脚本界面都要分别设置不同的启动、停止热键,也较为繁琐,另外受环境变量的影响相互间可能会存在冲突的情况,建议尽量用全局变量不要用环境变量


方法3、一键启动多个线程

这种方法是指在单一脚本中,通过特定条件(如标题、类名等)进行窗口遍历,一次性找到所有符合条件的窗口句柄,默认
以"|"号隔开存入数组中,然后通过分割句柄数组,为每一个窗口开设一个线程,即一键启动多窗口同时运行

相关记事本代码例子可参考:
【院刊】-【201412期】多线程多开脚本如何实现?

优点:方便、快捷,脚本自动判断开了几个要运行的窗口,多个窗口可以一键启动,不需要一个个去点
缺点:有新增窗口时必须先停止脚本后再启动,且每个游戏窗口通常只能执行同样的功能,如果要执行不同的功能,则脚本相对会比较复杂


方法4、单线程分别启动


目前稳定的后台多开脚本通常都是用这种方法,这种方法是把脚本要执行的代码完全写成一个单线程,然后通过循环等待按键,每按一次设定好的启动线程的键,则获取鼠标指向的窗口句柄,开始在这个窗口句柄里运行脚本

以记事本多窗口输入为例代码:Dim hwnds(),线程ID(),i
i=0
Do
    Key = WaitKey
    If key = 118 Then //按f8启动
      Redim Preserve hwnds(i),线程ID(i)
      Hwnds(i) = Plugin.Window.MousePoint()
      线程ID(i) = BeginThread(测试线程)
      TracePrint join(hwnds,"|")
      i=i+1
    End If
    If key = 119 Then//按f9单停
      Hwnd = Plugin.Window.MousePoint()
      For w = 0 To i-1
            If Hwnds(w) = Hwnd Then
                StopThread 线程ID(w)
            End If
      Next
    End If
Loop
Sub 测试线程//这里写脚本要执行功能主程序
    Hwnd = Plugin.Window.MousePoint()
    Delay 100
    Do
      Call Plugin.Window.SendString(Hwnd, "测试")
      Delay 1000
      Call Plugin.Window.SendKeyPress(Hwnd, 13)
      Delay 1000
    Loop
End Sub基于类似此种方法的大漠后台多窗口切换绑定可参考
【院刊】-【201412期】不会用多线程?单线程也可以操作多窗口

优点:灵活,支持实时新增窗口启动,多窗口可切换不同配置启动,可实现W美单停
多线程整体缺点:1.多线程命令属于高级命令功能,不推荐新手使用
                        2.目前按键多线程技术并不是很成熟,特别是运行时间久了容易出现异常情况


后记
目前关于按键后台脚本多开方法主要是这几种,就简单介绍到这里,如果有新方法欢迎回帖补充,有写错的地方,欢迎纠正

相关院刊:

【院刊】-【201412期】多线程多开脚本如何实现?
【院刊】-【201412期】不会用多线程?单线程也可以操作多窗口

院刊目录
http://bbs.anjian.com/thread-549014-1-1.html



xuemanx 发表于 2015-7-4 13:08:40

支持支持~~~~

ge372593801 发表于 2015-7-21 18:59:24

学习学习

今日小生得以一见楼主大贴实在是惶恐至急,何否,楼主此贴实在妙哉!

chlnr159 发表于 2015-7-22 07:36:17

謝謝,希望以後多些

汤姆克鲁斯 发表于 2016-4-9 00:31:25

学习学习有用处啊

wdjxzbygy 发表于 2016-4-11 13:43:22

原来这样简单

mines999 发表于 2016-6-15 22:29:22

没看明白啊~我小白啊
页: [1]
查看完整版本: 后台脚本单开变多开 So—Eazy