1. //先定义变量是一个好习惯
  2. dim handle,handle1, s,s1,s2,s3, MyArray,parentH, fileHandle
  3. set TiShiObj = createobject("WScript.Shell")
  4. //=================== 主程序 ======================
  5. //创建一个文件名为
  6. fileHandle ="c:\log.txt"
  7. //调用子程序
  8. 调用子程序 查找窗体
  9. //用笔记本软件打开刚才保存的文件
  10. 调用外部VBScript子程序 运行一个外部程序(fileHandle)
  11. 标记 结束
  12. //弹出对话框,显示程序结束
  13. Call TiShiObj.Popup("程序终止运行",3,"3秒后窗口自动关闭",0)
  14. //msgbox "程序终止运行",64,"程序终止运行"
  15. //程序结束
  16. 脚本停止运行
  17. //================== 子程序 ========================
  18. 子程序 查找窗体
  19.     //获取当前窗口的句柄
  20.     调用插件命令 parentH = Window.Foreground()
  21.     //如果当前无窗口,则结束程序
  22.     如果表达式 (parentH = 0) 为真,则
  23.         调用外部VBScript子程序 运行一个外部程序(fileHandle)
  24.         跳转到标记 结束
  25.     条件结束
  26.     //变量初始化
  27.     handle=1
  28.     handle1=0
  29.     //一直循环查找到子窗口,直到找不到为止
  30.     如果表达式 (handle<>0) 为真,则循环执行
  31.         //查找当前窗口的子窗口
  32.         调用插件命令 handle = Window.FindEx(parentH, handle1,0,0)
  33.         //如果找到子窗口
  34.         如果表达式 (handle <> 0) 为真,则
  35.             //获取子窗口的信息, GetClientRect 返回的信息是一个字符串, 格式如:123|356|200|400
  36.             调用插件命令 s = Window.GetClientRect(handle)
  37.             //按|对上面的字符串进行分割, 并保存到数组里面
  38.             //Split进行分割后, MyArray数组中的数组如下:
  39.             // MyArray(0) = 123 <---窗口的左边坐标
  40.             // MyArray(1) = 356 <---窗口的上边坐标
  41.             // MyArray(2) = 200 <---窗口的宽度
  42.             // MyArray(3) = 400 <---窗口的高度
  43.             //注意: 数组的第一个元素, 读取的时候是 MyArray(0), 而不是 MyArray(1)
  44.             //即数组元素的下标是从 0 开始, 而不是从 1 开始的
  45.             MyArray = Split(s, "|", -1, 1)
  46.             //用 & 连字符, 将各数组连接起来
  47.             s = "坐标(x,y):" & MyArray(0) & "," & MyArray(1) & " 宽度,高度:" & MyArray(2) & "," & MyArray(3)
  48.             //获取窗口的类名称
  49.             调用插件命令 s1 = Window.GetClass(handle)
  50.             s1 = "类名: " & s1
  51.             //获取窗口的标题
  52.             调用插件命令 s2 = Window.GetText(handle)
  53.             s2 = ",标题:" & s2
  54.             s3 = " 句柄: " & CStr(handle)
  55.             //保存上面的各种信息写到文件中,即c:\log.txt
  56.             如果表达式 (fileHandle <> -1) 为真,则
  57.                 调用插件命令 File.WriteFile(fileHandle, s1 & s2 & s & s3)
  58.             条件结束
  59.         条件结束
  60.         //更新handle1的值,以保证循环继续
  61.         handle1 = handle
  62.     循环结束
  63. 子程序结束,回到调用处