求按键精灵固定句柄和移动句柄的激活设置~~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求按键精灵固定句柄和移动句柄的激活设置~~~相关的知识,希望对你有一定的参考价值。

2个问题!1.请问有没有什么办法可以固定窗口句柄?下次在开的时候还是这个句柄!还有怎么激活这个句柄,如果这个句柄不存在,脚本就暂停重新查找这个句柄! 2.如果不行,我把脚本用按键精灵里面的小精灵制作成软件包以后,需要制作7个窗口的句柄4个主程序,2个文本文档,1个网页如何在小精灵中设置这几个移动句柄,在下次启动时候可以修改? 这个是我设置的其中部分,希望高手帮忙~~~UserVar a=1180460程序1句柄号
UserVar b=1180461程序2句柄号
UserVar c=1180462程序3句柄号
UserVar d=1180463程序4句柄号
UserVar e=1180464文本1句柄号
UserVar f=1180465文本2句柄号
UserVar g=1180466网页1句柄号如果有a=1180460则激活aPlugin Window.Active(a)在按键精灵里面要一个一个的修改,非常麻烦,所以用小精灵设置UserVar 来修改,但是问题来了,在小精灵里面修改好的句柄不自动找到句柄窗口激活就继续执行下一步的程序,麻烦高手指点

如果你使用固定的文件或者一个程序只开一个,那就可以使用标题来执行打开,而不用到处找句柄!下面这些东西我直接改了下给你,变量就懒得改了,执行以后所有的窗口标题和句柄都出现在里面,按你的程序查找名字,然后在添加到Plugin hwnd =Window.Find(0,"文本A.txt - 记事本")Plugin Window.Active(hwnd) 激活当前窗口~~~如果你有多个记事本之类的,最好先设好名字,比如我的文本A。默认名字为“无标题 - 记事本” //先定义变量是一个好习惯
dim handle,handle1, s,s1,s2,s3, MyArray,parentH, fileHandle
set TiShiObj = createobject("WScript.Shell")
//=================== 主程序 ======================
//创建一个文件名为
fileHandle ="D:\刷号程序\记录句柄.txt"
//调用子程序
Gosub 查找窗体
//用笔记本软件打开刚才保存的文件
VBSCall RunApp(fileHandle)
Rem 结束
//=================================================================================
//================== 子程序 ========================
Sub 查找窗体
//变量初始化
handle=1
handle1=0
//一直循环查找到子窗口,直到找不到为止
While handle<>0
//查找当前窗口的子窗口
Plugin handle = Window.FindEx(parentH, handle1,0,0)
//如果找到子窗口
If handle <> 0
//获取子窗口的信息, GetClientRect 返回的信息是一个字符串, 格式如:123|356|200|400
Plugin s = Window.GetClientRect(handle)
//按|对上面的字符串进行分割, 并保存到数组里面
//Split进行分割后, MyArray数组中的数组如下:
// MyArray(0) = 123 <---窗口的左边坐标
// MyArray(1) = 356 <---窗口的上边坐标
// MyArray(2) = 200 <---窗口的宽度
// MyArray(3) = 400 <---窗口的高度
//注意: 数组的第一个元素, 读取的时候是 MyArray(0), 而不是 MyArray(1)
//即数组元素的下标是从 0 开始, 而不是从 1 开始的
//获取窗口的标题
Plugin s2 = Window.GetText(handle)
s2 = ",标题:" & s2
s3 = " 句柄: " & CStr(handle)
//保存上面的各种信息写到文件中,即c:\log.txt
If fileHandle <> -1
Plugin File.WriteFileEx(fileHandle, s2 & s3)
EndIf
EndIf
//更新handle1的值,以保证循环继续
handle1 = handle
EndWhile
Return 查找窗体
参考技术A 一个一个回答你。1)窗口的句柄不是固定的,也无法通过脚本或者其他程序进行固定,这是由于windows系统来决定的窗口的句柄的唯一性。2)你的7个窗口句柄需要轮换激活的话,其实不需要通过uservar来设置窗口句柄,而是做出提示,每打开一个窗口,就获取一次句柄记录下来。如下脚本:VBSCall MessageBox("请运行第一个程序,然后点击确定。")Plugin win1=Window.Foreground()VBSCall MessageBox("请运行第二个程序,然后点击确定。")Plugin win2=Window.Foreground().....如此类推 这样获取到的7个窗口句柄后再做你后面的脚本操作。

按键精灵如何使用大漠插件绑定数个窗口

有哪位大神能给哥实例吗?
按键精灵使用大漠插件在数个窗口实现后台鼠标点击
麻烦给个3-4个窗口点击的实例!!
我是小白!大神们勿喷~~~~

必须使用多线程,楼上说的不正确,如果在绑定后再次进行绑定,之前的窗口就会失效

下面是我的代码:

Dim hwnd(5) '数组,这里假设存放着6个窗口的句柄
DimEnv nowhwnd '多线程传递变量

For i = 0 To 5
    nowhwnd = hwnd(i)
    BeginThread main
    Delay 3000
Next

Sub main
    thehwnd = nowhwnd

    dm_ret = dm.BindWindow(thehwnd, "normal", "dx", "normal", 0)
    '这里写你的点击代码
End Sub


希望我的回答对你有帮助

^o^

参考技术A 如果你会写多线程就好办,主要是句柄和卡机问题,大漠绑定时会占用电脑资源,同时绑定太多会造成卡机或者软件崩溃,所以一般都是一个一个绑定比较保险,如:显示1获取最前窗口句柄绑定1,等1运行正常后,再显示2获取最前绑定2、2稳定再3.。。。。。

以上是关于求按键精灵固定句柄和移动句柄的激活设置~~~的主要内容,如果未能解决你的问题,请参考以下文章

按键精灵 代码SayString 输入不了游戏登陆框 设置一个游戏登陆账号递增

按键精灵 代码SayString 输入不了游戏登陆框 设置一个游戏登陆账号递增

这里有个单开的按键精灵求高手帮我改成可以多开的

求一个按键精灵9的脚本

按键精灵 怎么让鼠标移动到固定位置

易语言 取某窗口句柄后然后后台对这个窗口后台模拟按键