易语言寻找窗口发送消息源码
系统结构:调试输出文本,寻找指定窗口句柄,FindWindowA,FindWindowExA,GetClassNameA,GetParent,GetWindow,GetWindowTextA,GetDesktopWindow,GetDlgItem,发送消息,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 调试输出文本
| |
| |------ 寻找指定窗口句柄
| |
| |
======调用的Dll
| |
| |---[dll]------ FindWindowA
| |
| |---[dll]------ FindWindowExA
| |
| |---[dll]------ GetClassNameA
| |
| |---[dll]------ GetParent
| |
| |---[dll]------ GetWindow
| |
| |---[dll]------ GetWindowTextA
| |
| |---[dll]------ GetDesktopWindow
| |
| |---[dll]------ GetDlgItem
| |
| |---[dll]------ 发送消息
调用的DLL命令:
.DLL命令 FindWindowA, 整数型, "user32", "FindWindowA", , 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口类名, 文本型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
.参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 示例Dim hw&, cnt&Dim rttitle As * 256hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4cnt = GetWindowText(hw&, rttitle, 255)MsgBox Left, 0, "RTMain title";
.DLL命令 FindWindowExA, 整数型, "user32", "FindWindowExA", , 在窗口列表中寻找与指定条件相符的第一个子窗口 找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口句柄1, 整数型, , 在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
.参数 窗口句柄2, 整数型, , 从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
.参数 欲搜索的类名1, 文本型, , 欲搜索的类名。零表示忽略
.参数 欲搜索的类名2, 文本型, , 欲搜索的类名。零表示忽略;
.DLL命令 GetClassNameA, 整数型, "user32", "GetClassNameA", , 为指定的窗口取得类名 以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获得类名的那个窗口的句柄
.参数 缓冲区, 文本型, , 随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
.参数 缓冲区长度, 整数型, , 由lpClassName提供的缓冲区长度;
.DLL命令 GetParent, 整数型, "user32", "GetParent", , 判断指定窗口的父窗口 父窗口的句柄。如窗口没有父,或遇到错误,则返回零。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲测试的窗口的句柄;
.DLL命令 GetWindow, 整数型, "user32", "GetWindow", , 获得一个窗口的句柄,该窗口与某源窗口有特定的关系 由wCmd决定的一个窗口的句柄。如没有找到相符窗口,或者遇到错误,则返回零值。会设置GetLastError
.参数 源窗口, 整数型, , 源窗口
.参数 关系, 整数型, , 指定结果窗口与源窗口的关系,它们建立在下述常数基础上:;GW_CHILD:寻找源窗口的第一个子窗口;GW_HWNDFIRST:为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口;GW_HWNDLAST:为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口;GW_HWNDNEXT:为源窗口寻找下一个兄弟窗口;GW_HWNDPREV:为源窗口寻找前一个兄弟窗口;GW_OWNER:寻找窗口的所有者;
.DLL命令 GetWindowTextA, 整数型, "user32", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获取文字的那个窗口的句柄
.参数 缓冲区, 文本型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
.参数 缓冲尺寸, 整数型, , lp缓冲区的长度;
.DLL命令 GetDesktopWindow, 整数型, "user32", "GetDesktopWindow", , 获得代表整个屏幕的一个窗口(桌面窗口)句柄 桌面窗口的句柄
.DLL命令 GetDlgItem, 整数型, "user32.dll", "GetDlgItem"
.参数 父窗口句柄, 整数型
.参数 控件标识, 整数型
.DLL命令 发送消息, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型security”声明形式 由具体的消息决定
.参数 窗口句柄, 整数型, , 要接收消息的那个窗口的句柄
.参数 信息值, 整数型, , 消息的标识符
.参数 参数一, 整数型, , 具体取决于消息
.参数 参数二, 文本型, , 具体取决于消息;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。