[发明专利]Windows系统下向任意窗口发送消息的方法在审
申请号: | 201710788973.X | 申请日: | 2017-09-05 |
公开(公告)号: | CN107368380A | 公开(公告)日: | 2017-11-21 |
发明(设计)人: | 李相宏;杨森 | 申请(专利权)人: | 深圳市兆驰数码科技股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/44 |
代理公司: | 广东深宏盾律师事务所44364 | 代理人: | 赵琼花 |
地址: | 518112 广东省深圳市龙岗区南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | windows 系统 任意 窗口 发送 消息 方法 | ||
技术领域
本发明涉及软件技术领域,尤其涉及一种Windows系统下向任意窗口发送消息的方法。
背景技术
现有的Windows系统下向窗口发送消息的方法为:首先,使用HOOK API函数记录相关的操作属性(包括顺序,动作,坐标);再将其解析用API函数keybd_event模拟用户的操作。该方法实现复杂,需要寻找控件的相对位置坐标,要详细的记录操作步骤,模拟时需要准确的设置焦点。
发明内容
针对现有技术的不足,本发明提出了一种Windows系统下向任意窗口发送消息的方法,该方法检索获取顶级窗口的句柄,进而检索到指定ID的子窗口,便可以向其发送消息,不需寻找窗口及控件的坐标及记录操作步骤,解决了现有的方法实现复杂的问题。
为了实现上述目的,本发明技术方案如下:
一种Windows系统下向任意窗口发送消息的方法,包括以下步骤:
S1:检索拥有指定窗口类名和窗口名称的顶级窗口的句柄;
S2:依据检索到的句柄枚举顶级窗口下的所有子窗口;
S3:遍历枚举的各子窗口,找到指定的子窗口,向指定的子窗口发送消息。
进一步地,在所述S1于S2之间还包括以下步骤:
判断是否检索到顶级窗口的句柄;若为是,则返回顶级窗口的句柄,并执行S2;若为否,则提示未找到该顶级窗口的句柄。
本发明的有益效果:
该方法检索获取顶级窗口的句柄,进而检索到指定ID的子窗口,便可以向其发送消息,实现简单、可靠性高。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图和实施例,进一步阐述本发明。
如图1所示,一种Windows系统下向任意窗口发送消息的方法,包括以下步骤:
S1:检索拥有指定窗口类名和窗口名称的顶级窗口的句柄。
在本实施例中,通过Windows系统提供的FindWindow函数对指定窗口类名和窗口名称的顶级窗口进行检索。其函数的原形为:FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);lpClassName设置为NULL,FindWindow函数将会寻找任何与lpWindowName参数匹配的窗口;lpWindowName设置为需要被寻找的窗口名的字符串。判断FindWindow函数是否检索到顶级窗口的句柄;若为是,则返回顶级窗口的句柄,并执行S2;若为否,则提示未找到该顶级窗口的句柄。
一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例。诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。
S2:依据检索到的句柄枚举顶级窗口下的所有子窗口。
在本实施例中,通过Windows系统提供的EnumChildWindows函数枚举顶级窗口的所有子窗口。其函数原型为:BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc,LPARAM lParam);hWndParent是FindWindow函数找到窗口后所返回的句柄;lParam为自定义的参数;特别注意的是lpEnumFunc函数,回调函数的返回值将会影响到这个API函数的行为;如果回调函数返回true,则枚举继续,直到枚举完成;如果返回false,则将会中止枚举。
EnumChildWindows函数使用的回调机制,回调函数的意义在于回调函数允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。因此,发送消息的类型可随时定义,方便了程序的扩展。
S3:遍历枚举的各子窗口,找到指定的子窗口,向指定的子窗口发送消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市兆驰数码科技股份有限公司,未经深圳市兆驰数码科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710788973.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型弧形木制品钻孔工作台
- 下一篇:机电一体式B轴摆头装置