生成窗口树之易语言快速算法
系统结构:递归生成窗口树,GetWindow,GetClassName,GetDesktopWindow,GetWindowText,IsWindowVisible,SendMessage,
======窗口程序集1
| |
| |------ __启动窗口_尺寸被改变
| |
| |------ _按钮生成窗口树_被单击
| |
| |------ 递归生成窗口树
| |
| |
======调用的Dll
| |
| |---[dll]------ GetWindow
| |
| |---[dll]------ GetClassName
| |
| |---[dll]------ GetDesktopWindow
| |
| |---[dll]------ GetWindowText
| |
| |---[dll]------ IsWindowVisible
| |
| |---[dll]------ SendMessage
调用的DLL命令:
.DLL命令 GetWindow, 整数型, "user32", "GetWindow", , 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 由wCmd决定的一个窗口的句柄。如没有找到相符窗口,或者遇到错误,则返回零值。会设置GetLastError
.参数 源窗口, 整数型, , 源窗口
.参数 关系, 整数型, , 指定结果窗口与源窗口的关系,它们建立在下述常数基础上:;GW_CHILD:寻找源窗口的第一个子窗口;GW_HWNDFIRST:为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口;GW_HWNDLAST:为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口;GW_HWNDNEXT:为源窗口寻找下一个兄弟窗口;GW_HWNDPREV:为源窗口寻找前一个兄弟窗口;GW_OWNER:寻找窗口的所有者;
.DLL命令 GetClassName, 整数型, "user32", "GetClassNameA", , 为指定的窗口取得类名 以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获得类名的那个窗口的句柄
.参数 缓冲区, 文本型, , 随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
.参数 缓冲区长度, 整数型, , 由lpClassName提供的缓冲区长度;
.DLL命令 GetDesktopWindow, 整数型, "user32", "GetDesktopWindow", , 获得代表整个屏幕的一个窗口(桌面窗口)句柄 桌面窗口的句柄
.DLL命令 GetWindowText, 整数型, "user32", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获取文字的那个窗口的句柄
.参数 缓冲区, 文本型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
.参数 缓冲尺寸, 整数型, , lp缓冲区的长度;
.DLL命令 IsWindowVisible, 整数型, "user32", "IsWindowVisible", , 判断窗口是否可见 如窗口可见则返回TRUE(非零)
.参数 窗口句柄, 整数型, , 要测试的那个窗口的句柄;
.DLL命令 SendMessage, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型security”声明形式 由具体的消息决定
.参数 窗口句柄, 整数型, , 要接收消息的那个窗口的句柄
.参数 信息值, 整数型, , 消息的标识符
.参数 参数一, 整数型, , 具体取决于消息
.参数 参数二, 整数型, , 具体取决于消息;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。