一种桌面应用程序的窗体定位方法技术

技术编号:20588362 阅读:174 留言:0更新日期:2019-03-16 06:59
本发明专利技术涉及一种桌面应用程序的窗体定位方法,所述方法为通过钩子注入方式将动态库注入到监控进程中,所述动态库可以加载xml配置文件,所述xml配置文件可以配置各种属性、条件,xml中配有窗体的逻辑结构树,所述动态库中设有窗体的物理结构树,所述逻辑结构树和所述物理结构树的节点都是一一对应的关系。该方法能够定位到不同软件的各种窗体,定位条件可以在xml中配置,使得该方法适用性强、灵活性高。

A Form Location Method for Desktop Applications

The present invention relates to a method of form location for desktop applications. The method is to inject a dynamic library into the monitoring process by hook injection. The dynamic library can load XML configuration files. The XML configuration files can configure various attributes and conditions. The logical structure tree of the form is provided in the xml. The physical structure tree of the form is provided in the dynamic library, and the logical knot is described. The nodes of the tree and the physical structure tree are one-to-one correspondence. The method can locate various forms of different software, and the location conditions can be configured in xml, which makes the method more applicable and flexible.

【技术实现步骤摘要】
一种桌面应用程序的窗体定位方法
本专利技术涉及Windows应用开发
,特别涉及一种桌面应用程序的窗体定位方法。
技术介绍
随着我国医院数字化、信息化建设的发展,医院信息管理系统(HIS)、检验信息系统(LIS)、影像系统(PACS)、体检管理系统(PEIS)、电子病历(EMR)等各种医疗子系统已被医院所采用。以往医院需要对各系统的数据进行关联并在院内共享,以方便在各个科室提取并分析数据。在现有的互联网时代,如能够将数据正确地提取、重构并利用互联网传输,将极大地提高医疗资源的灵活配置,使远程会诊、远程医疗成为一种常见的、低成本的、便捷的就诊手段。远程会诊中需要获取各种信息、各种数据,目前绝大多数医院使用的医疗系统软件都是基于C/S结构的,但是不同的医疗软件之间的实现方法不一样,这样就没办法统一接口,使得获取数据很不方便,虽然软件各不一样,但是最终都是调用的window底层的接口,因此可以通过window底层实现不同软件的数据获取,获取数据首先得找到数据所在窗体。
技术实现思路
为了解决现有技术的问题,本专利技术提供了一种桌面应用程序的窗体定位方法。所述技术方案如下:在现有医疗相关信息系统中,因为需要与设备连接,绝大多数的仍旧使用的C/S方式来实现系统的界面。本专利技术具体实施方式在于:通过钩子注入方式将动态库注入到监控进程中,所述动态库可以加载xml配置文件,所述xml配置文件可以配置各种属性、条件,xml中配有窗体的逻辑结构树,所述动态库中设有窗体的物理结构树,所述逻辑结构树和所述物理结构树的节点都是一一对应的关系。优选地,所述钩子注入方式是通过微软提供的函数注入。优选地,所述逻辑结构树的逻辑通过spy++获取应用程序的结构后配置得到。优选地,所述物理结构树是应用程序每次创建窗体时根据窗体的属性来插入到所述物理结构树的某个节点中形成的。优选地,所述创建窗体是通过截取窗体Create消息获取的,动态库实时监控进程发过来的各种消息,然后过滤掉不需要的消息。本专利技术提供的技术方案带来的有益效果是:能够定位到不同软件的各种窗体,定位条件可以在xml中配置,使得该方法适用性强、灵活性高。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面对本专利技术实施方式作进一步地详细描述。数据的获取:通过插入消息钩子注入动态库,同时监视程序消息事件,在特定事件触发时获取特定的数据,并通过进程间通信发送至客户端,基本实现过程如下:通过钩子注入方式将动态库注入到监控进程中,动态库可以加载xml配置文件,xml配置文件可以配置各种属性、条件,xml中配有窗体的逻辑结构树,动态库中设有窗体的物理结构树,逻辑结构树和所述物理结构树的节点都是一一对应的关系。进一步地,钩子注入方式是通过微软提供的函数SetWindowsHookEx注入,通过UnhookWindowsHookEx来卸载钩子,从而使得被监控进程不受影响,增加软件的性能。进一步地,逻辑结构树的逻辑通过spy++获取应用程序的结构后配置得到,配置到xml中,逻辑结构可以跨层级,直接跨过某些不需要的窗体。进一步地,物理结构树是应用程序每次创建窗体时根据窗体的属性来插入到物理结构树的某个节点中形成的,,。进一步地,创建窗体是通过截取窗体Create消息获取的,动态库实时监控进程发过来的各种消息,然后过滤掉不需要的消息。本文档来自技高网...

【技术保护点】
1.一种桌面应用程序的窗体定位方法,其特征在于:通过钩子注入方式将动态库注入到监控进程中,所述动态库可以加载xml配置文件,所述xml配置文件可以配置各种属性、条件,xml中配有窗体的逻辑结构树,所述动态库中设有窗体的物理结构树,所述逻辑结构树和所述物理结构树的节点都是一一对应的关系。

【技术特征摘要】
1.一种桌面应用程序的窗体定位方法,其特征在于:通过钩子注入方式将动态库注入到监控进程中,所述动态库可以加载xml配置文件,所述xml配置文件可以配置各种属性、条件,xml中配有窗体的逻辑结构树,所述动态库中设有窗体的物理结构树,所述逻辑结构树和所述物理结构树的节点都是一一对应的关系。2.如权利要求1桌面应用程序的窗体定位方法,其特征在于,所述钩子注入方式是通过微软提供的函数注...

【专利技术属性】
技术研发人员:梁威周双
申请(专利权)人:长沙博为软件技术股份有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1