按键精灵脚本制作获取窗口信息(高级篇)
General]
Description=获取窗口信息
BeginHotkey=121
BeginHotkeyMod=0
PauseHotkey=0
PauseHotkeyMod=0
StopHotkey=123
StopHotkeyMod=0
RunOnce=1
EnableWindow=
Enable=0
[Repeat]
Type=0
Number=1
[CallBack]
OnSetup=
[Comment]
Content=.
【功能说明】.
该脚本查找当前窗口的子窗体,包括按钮、标签、图像、列表框等,并将这些子窗体的窗口句柄、类名、坐标信息,保存到c盘根目录下的log.txt文件中。.
.
【详细说明】.
该脚本主要举例说明以下功能:.
1、文本文件的读写操作。.
2、Window插件的调用演示。.
3、如何从一个长字符串中,按特定的格式分解出所需要的数据——Split函数使用.
4、数组元素的使用方法。.
5、循环语句的使用。.
4、如何调用软件(RunApp的使用)。.
【制作日期】.
2008年5月.
.
[Script]
//先定义变量是一个好习惯
dim handle,handle1, s,s1,s2,s3, MyArray,parentH, fileHandle
//=================== 主程序 ======================
//打开一个文件,该文件如果不存在就创建一个
Plugin fileHandle = File.OpenFile(”c:\log.txt”)
//调用子程序
Gosub 查找窗体
//关闭上面打开的文件
Plugin File.CloseFile(filehandle)
//用笔记本软件打开刚才保存的文件
VBSCall RunApp(”Notepad c:\log.txt”)
Rem 结束
//弹出对话框,显示程序结束
VBSCall MessageBox(”程序终止运行”)
//程序结束
EndScript
//================== 子程序 ========================
Sub 查找窗体
//获取当前窗口的句柄
Plugin parentH = Window.Foreground()
//如果当前无窗口,则结束程序
If parentH = 0
VBSCall MessageBox(”没有找到父窗口,程序结束”)
Goto 结束
EndIf
//变量初始化
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(0)
//即数组元素的下标是从 0 开始, 而不是从 1 开始的
MyArray = Split(s, “|”, -1, 1)
//用 & 连字符, 将各数组连接起来
s = “坐标(x,y):” & MyArray(0) & “,” & MyArray(1) & ” 宽度,高度:” & MyArray(2) & “,” & MyArray(3)
//获取窗口的类名称
Plugin s1 = Window.GetClass(handle)
s1 = “类名: ” & s1
//获取窗口的标题
Plugin s2 = Window.GetText(handle)
s2 = “,标题:” & s2
s3 = ” 句柄: ” & CStr(handle)
//如果文件打开成功的话, 则把上面的各种信息写到文件中,即c:\log.txt
If fileHandle <> -1
Plugin File.WriteLine(fileHandle, s1 & s2 & s & s3)
EndIf
EndIf
//更新handle1的值,以保证循环继续
handle1 = handle
EndWhile
Return 查找窗体