第一章 按键精灵脚本教程:单线程操作多窗口.docxVIP

  • 281
  • 0
  • 约4.06千字
  • 约 8页
  • 2017-06-18 发布于湖北
  • 举报

第一章 按键精灵脚本教程:单线程操作多窗口.docx

按键精灵脚本教程:单线程操作多窗口来源:按键学院【按键精灵】不开多线程,在单线程内如何对多个窗口分别进行操作,以实现多开目的?让我们一起来了解了解~~内容提要本例中,讲解的是使用大漠插件,通过创建多个大漠对象,切换大漠对象对多窗口分别进行操作。『1』? ??获取要绑定的窗口句柄,存放在窗口句柄数组中。『2』? ??有几个窗口就创建几个大漠对象。『3』? ??创建一个公用对象,用于切换。『4』? ??循环切换大漠对象,分别绑定对应的窗口。『5』? ??循环切换大漠对象,分别操作对应的窗口。获取窗口句柄1、循环等待按键,如果按下的是F7键,则获取当前鼠标指向的窗口句柄。2、获取窗口句柄存放到窗口句柄数组中。3、如果按下的是F8键,则退出do循环,继续后续的操作。『代码』Dim hwnd_all(100)//当我们不知道用户会启动多少个窗口的时候,可以把数组定义大一点。Do While key 119 //没有按下F8则进入循环 Key = WaitKey() //等待按键并且获取按键码 If key = 118 Then //如果按下F7则将变量js加1js=js+1hwnd_all(js) = Plugin.Window.MousePoint() //获取当前鼠标指向的窗口的窗口句柄存放到数组hwnd_all中 End IfLoop『分析』◎?? ??Do While key 119?? ?Do循环分为前判断和后判断,? ?? ?? ??它们的区别在于,前判断是先判断条件符不符合然后进入循环体,? ?? ?? ?? 而后判断是先进入循环体执行一次之后再进行判断:? ?? ?? ?? 前判断:? ?? ?? ?? ?? ?? ??Do??while 条件? ?? ?? ?? ?? ?? ?? ?? ? Loop? ?? ?? ?? ??后判断:? ?? ?? ?? ?? ?? ?Do??? ?? ?? ?? ?? ?? ?? ?? ? Loop while 条件创建大漠对象“刚接触大漠的童鞋可能对于对象的概念比较模糊。其实作为一个单纯的使用者,暂时不需要去了解更深的原理。咱们只需知道想要用大漠的命令,就要拿到它的使用权。而建立大漠对象就是获取使用权的步骤。有没有童鞋是这样认为的:觉得大漠的命令一定是??dm.movetox,y?或者?dm.ver?? 认为一定要以dm.什么的形式来使用命令? ??其实不是这样的,你可以这样使用大漠命令,xx.movetox,y??或者?oo.movetox,y???咱高兴用什么就用什么。这个取决于我们创建大漠对象时所命名的对象名。『例如』? ?? ?? ? 我们创建一个大漠对象,命名为ha :? ?? ?? ? Set ha = createobject(dm.dmsoft)? ?? ?? ??那么,咱们在使用大漠命令的时候,就应该这样使用:? ?? ?? ? ha.movetox,y『语法』? ?? ?Set 对象 = createobject(dm.dmsoft)?//创建大漠对象? ?? ????对象.movetox,y? ?//使用命令我们现在回到例子中,一个窗口对应创建一个大漠对象。窗口和对象之间的关系要怎么理解呢?为什么不多个窗口共用一个对象呢?『例如』? ??? ?? ?咱们是一家拥有上千保姆的家政公司。一个家庭比作一个窗口,一个保姆比作一个对象。咱们把保姆派到一个家庭之后,保姆才能接收并且执行咱们下达的命令。一个保姆对应一个家庭,轻轻松松。但是当一个保姆要对应10个家庭,她要怎么办呢?这家擦了个地板又跑到那家擦个玻璃。一个对象在第一个窗口执行了一个动作解绑之后绑定第二个窗口,第二个窗口执行一个动作解绑,然后再去绑定第三个窗口……绑定和解绑是非常耗费系统资源的,所以这里不提倡这种做法。『代码』// 声明对象(有几个窗口声明几个)ReDimdm_all(js) For i= 1 to js // 分别创建对象,对象存放在数组中 Set dm_all(i) = createobject(dm.dmsoft)Next『注意』? 按键中不支持数组形式对象直接使用命令,例如:? dm_all(0).movetox,y? 不支持这样使用。『所以』我们需要创建一个公用的对象,用于将数组形式的对象转为变量名形式的对象,作为对象切换的一个容器。//////声明公共对象,用于切换//////Set dm = nothing //创建空的对象切换对象绑定窗口有多少个窗口就循环几次绑定窗口,咱们的窗口数量是js,循环js次,代码如下:『代码』For i = 1 To js Call 切换对象(i)dm_ret = dm.BindWindow(hwnd_all(i),

文档评论(0)

1亿VIP精品文档

相关文档