多线程脚本多线脚本的编写(说明 非官方示例)

发布时间:2011-12-30 20:17:01   来源:文档文库   
字号:

【多线程脚本】多线脚本的编写(说明+非官方示例)

多线教程, 多线程示例

本帖最后由 peihuan 2010-11-30 01:50 编辑

论坛里讨论多线的帖子除了官方的,着实不多。所以把自己原来写的帖子转一份过来。希望对于想了解多线的朋友有个帮助。

最近拿到了新版的按键,研究了下多线.示例中的那个脚本容易把人看的头大但是相对还是比较详细.这里我想写个简单点,就是容易让人看懂的.这个非常简单应该说,不用看上面的备注直接看脚本代码也就清楚多线是怎么回事了.好了开始看脚本:

Delay 1000

//■■■■开始执行的脚本

BeginThread "DXC1"

//================提取线程DXC1里面的动作

BeginThread "DXC2"

//================提取线程DXC2里面的动作

BeginThread "DXC3"

//================提取线程DXC3里面的动作

EndScript

//■■■■脚本执行结束!

//★★★★脚本需要提取的子线程内容(子程序)

//================设定线程1(名称XC1)动作(例如,打怪)

Sub DXC1

For 10

KeyPress 65,1

Delay 200

EndFor

Return

//================设定线程2(名称XC2)动作(例如,打怪)

Sub DXC2

For 20

KeyPress 66,1

Delay 200

EndFor

Return

//================设定线程3(名称XC3)动作(例如,打怪)

Sub DXC3

For 30

KeyPress 67,1

Delay 200

EndFor

Return

//★★★★脚本需要提取的子线程内容(子程序)

看了这个脚本不知道是不是明白了?其实真正运行的地方是下面这段.(记住这里的每个"DXC*"都代表一个脚本并且独立运行.而每个脚本都对应执行的内容是从下面进程(子程序)里提取的.所以要让在3个脚本执行哪些动作.只需要修改对应的线程(子程序)就可以了.明白了吗?

Delay 1000

//■■■■开始执行的脚本

BeginThread "DXC1"

//================提取线程DXC1里面的动作

BeginThread "DXC2"

//================提取线程DXC2里面的动作

BeginThread "DXC3"

//================提取线程DXC3里面的动作

EndScript

//■■■■脚本执行结束!

上面说的只是个简单的例子.下面是其他要用的命令介绍,如果想深研究的话可以参考一下.

SetEnvironmentVar 关键字,

中文注释:给关键字对应的环境变量赋值

返回值:无

命令含义:可以在线程里用这个命令设置环境变量的值,实现线程之间的参数传递

环境变量,这个词太书面化了,让人搞不懂是什么,其实环境变量就是指全局变量。

全局变量就是说,所有的线程都能调用到这个值。注意不同线程的同一个变量并不相同,

只有声明成全局变量后并调用它,才会是同一个值。

所以这个命令就是,把一个变量声明成全局变量,让所有线程都能够调用(必须用下面这个命令调用)这个变量的值。

GetEnvironmentVar 关键字

中文注释:获取环境变量

返回值:关键字对应的环境变量的值

命令含义:可以在线程里用这个命令获取环境变量的值,赋给线程里的vbs变量,实现线程之间的参数传递

这个命令是说,得到变量的全局变量的值。必须要用这个命令得到才是全局变量的值,不然同一个变量只是这个线程里的值。注意同上个命令联系起来。

关于全局变量的一个补充!

SetEnvironmentVar 关键字,

这个那就是把某个关键字定义为全局变量,来提供脚本里其他线程调用!

GetEnvironmentVar 关键字

这个是为了在某个线程里提取被定义好的变量。

示例:

Delay 1000

SetEnvironmentVar "KEY","87"

//意思:定义KEY为全局变量,并且给它的赋值为87

//■■■■开始执行的脚本

BeginThread "DXC1"

//================提取线程DXC1里面的动作

BeginThread "DXC2"

//================提取线程DXC2里面的动作

BeginThread "DXC3"

//================提取线程DXC3里面的动作

EndScript

//■■■■脚本执行结束!

//★★★★脚本需要提取的子线程内容(子程序)

//================设定线程1(名称:DXC1)动作(例如,打怪)

Sub DXC1

KT=GetEnvironmentVar("KEY")

//意思:提取定义好的KEY(全局变量)重新赋值给线程变量KT

For 10

KeyPress KT,1

//意思:在线程中使用重新被定义的线程变量KT(这时候这个KT就是87了)

Delay 200

EndFor

Return

//================设定线程2(名称:DXC2)动作(例如,打怪)

//KT=GetEnvironmentVar("KEY")

//意思:假如在线程DXC2里没有出现这个变量提取。那么下面的KT提取也就失效。这样就导致这个线程整个功能的不能使用。

Sub DXC2

For 20

KeyPress KT,1

Delay 200

EndFor

Return

//================设定线程3(名称:DXC3)动作(例如,打怪)

Sub DXC3

For 30

KeyPress 67,1

Delay 200

EndFor

Return

//★★★★脚本需要提取的子线程内容(子程序)

综上就是全局变量在多线脚本里的定义和提取,不知道是不是比官方的更容易看懂些,希望对想学之人有所帮助吧。:)

8.0修改后代码

Delay 1000

//■■■■开始执行的脚本

BeginThread DXC1

//================提取线程DXC1里面的动作

BeginThread DXC2

//================提取线程DXC2里面的动作

BeginThread DXC3

//================提取线程DXC3里面的动作

EndScript

//■■■■脚本执行结束!

//★★★★脚本需要提取的子线程内容(子程序)

//================设定线程1(名称XC1)动作(例如,打怪)

Sub DXC1

For 10

KeyPress 65,1

Delay 200

EndFor

Return

//================设定线程2(名称XC2)动作(例如,打怪)

Sub DXC2

For 20

KeyPress 66,1

Delay 200

EndFor

Return

//================设定线程3(名称XC3)动作(例如,打怪)

Sub DXC3

For 30

KeyPress 67,1

Delay 200

EndFor

Return

//★★★★脚本需要提取的子线程内容(子程序)

复制代码

本文来源:https://www.2haoxitong.net/k/doc/9c2da50603d8ce2f006623ad.html

《多线程脚本多线脚本的编写(说明 非官方示例).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式