学会用按键精灵获取子窗口句柄
1、【父窗口与子窗口】每一个窗体form都是一个父窗口,它不是其他任一个窗体的子窗口.窗体上的所有控件,按钮等就是窗体的子窗口.一个窗口(除了窗体)既可能是父窗口,也可能是子窗口.比如窗体里面有一个frame,frame里面的控件就是frame的子窗口,但frame同时也是窗体的子窗口.就像容器里面装着容器.最大的那个容器就是窗体.每一个容器里面的东西就是其子窗口.
2、【常见的父窗口和子窗口的关系】【父窗口对应一个子窗口】1、有类名没有标题(有标题没有类名)例如:记事本,它只有一个子窗口,子窗口只有类名没有标题。

4、例如上图:当我们要找创建时间这个子窗口的时候,findex命令里的子窗口句柄参数就设置为红框里子窗口的句柄。2、没有类名也没有标题父窗口下只有一个子窗口的情况,标题和类名不设置是可以的。hwnd=Plugin.Window.find(0,"无标题-记事本")zhwnd=Plugin.Window.findex(hwnd,0,0,0)TracePrintzhwnd结果:

6、它的这两个子窗口的类名标题都不一样,这样的情况我们按照前面介绍的父窗口下只有一个子窗口的方式来查找就可以了。代码:hwnd=Plugin.Window.find(0,"有道云笔记Haiye")zhwnd=Plugin.Window.findex(hwnd,0,"NETEASEPOPO2007List",0)TracePrintzhwnd结果:

8、有道云笔记下的这两个子窗口的类名、标题都是一样的。h嘛术铹砾wnd=Plugin.Window.find(0,"有道云笔记Haiye"稆糨孝汶;)HwndEx=Plugin.Window.findex(hwnd,0,"Popo.UI.Controls.Class.SkinSplitter",0)上面的代码只能找到第一个类名为Popo.UI.Controls.Class.SkinSplitter的子窗口,第二个无法找到。这样的情况,该怎么找第二个呢?在前面我们提到过,findex里的子窗口句柄这个参数,在这里我们就可以利用它。思路如下:1、获取父窗口句柄2、获取第一个子窗口句柄3、根据父窗口句柄以及第一个子窗口句柄,获取第二个子窗口句柄代码:hwnd=Plugin.Window.find(0,"有道云笔记Haiye")HwndEx=Plugin.Window.findex(hwnd,0,"Popo.UI.Controls.Class.SkinSplitter",0)TracePrintHwndExHwndEx=Plugin.Window.findex(hwnd,HwndEx,"Popo.UI.Controls.Class.SkinSplitter",0)TracePrintHwndEx结果:

