• 新浪微博:
  • 腾讯微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:76.8M
更新时间:2-21

按键精灵安卓版
立即下载

软件版本:3.2.5
软件大小:62.5M
更新时间:06-06

按键精灵iOS版
立即下载

软件版本:1.2.7
软件大小:29.2M
更新时间:06-19

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

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

登录 注册
返回列表 12345678» / 72
发新话题 回复该主题

[技术交流] 【院刊】-【201506期】后台脚本单开变多开 So—Easy [复制链接]

1#
本帖最后由 66球 于 2015-6-16 09:54 编辑

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


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





按键学院交流①群(1群已满):376122403

按键学院交流②群(2群):372671254

按键学院交流③群(3群):170084238


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

方法1、重复启动

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

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


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

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

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

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


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


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

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

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

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


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

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

方法4、单线程分别启动

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

以记事本多窗口输入为例代码:
  1. Dim hwnds(),线程ID(),i
  2. i=0
  3. Do
  4. Key = WaitKey
  5. If key = 118 Then //按f8启动
  6. Redim Preserve hwnds(i),线程ID(i)
  7. Hwnds(i) = Plugin.Window.MousePoint()
  8. 线程ID(i) = BeginThread(测试线程)
  9. TracePrint join(hwnds,"|")
  10. i=i+1
  11. End If
  12. If key = 119 Then//按f9单停
  13. Hwnd = Plugin.Window.MousePoint()
  14. For w = 0 To i-1
  15. If Hwnds(w) = Hwnd Then
  16. StopThread 线程ID(w)
  17. End If
  18. Next
  19. End If
  20. Loop
  21. Sub 测试线程//这里写脚本要执行功能主程序
  22. Hwnd = Plugin.Window.MousePoint()
  23. Delay 100
  24. Do
  25. Call Plugin.Window.SendString(Hwnd, "测试")
  26. Delay 1000
  27. Call Plugin.Window.SendKeyPress(Hwnd, 13)
  28. Delay 1000
  29. Loop
  30. End Sub
复制代码
基于类似此种方法的大漠后台多窗口切换绑定可参考
【院刊】-【201412期】不会用多线程?单线程也可以操作多窗口

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

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

相关院刊:

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

院刊目录
showtopic.aspx?topicid=549014&forumpage=1&page=1


 



谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵交流群

腾讯课堂视频课程

按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
安卓按键精灵交流群:115768679

按键精灵2014基础教学视频
Q语言零基础知识
按键精灵自动化脚本功能开发
按键精灵Q语言脚本开发
点我进入按键学院报名啦 招生细节进群咨询招生办主任




    已有6评分我要评分查看所有评分

    2#

    学习下

      已有1评分我要评分查看所有评分

      3#

      绯闻啊他哇天天问啊

        已有1评分我要评分查看所有评分

        4#

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

          已有1评分我要评分查看所有评分

          5#

          新手学习下

            已有1评分我要评分查看所有评分

            6#

            学习下,感受下!!!

              已有1评分我要评分查看所有评分

              7#

              学舞至今

              8#

              学以致用

              9#

              顶 学习了,居然还有这么简单的方法

              10#

              球球棒嗷~

                已有1评分我要评分查看所有评分

                11#

                后台脚本单开变多开

                官方实名认证作者 QQ:185220901
                承接 游戏,办公...各类脚本制作
                12#

                这个要看看

                13#

                晚上回家试验下前俩种方法,可以的话给花花

                14#

                学习下 嘎嘎嘎

                15#


                16#

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

                17#

                看看学习一下啊~

                18#

                111111111111111111

                19#


                20#

                tffhhgffgg545465454

                发新话题 回复该主题