CN105808362A - 一种通用的自动对接任意第三方程序的通信方法 - Google Patents
一种通用的自动对接任意第三方程序的通信方法 Download PDFInfo
- Publication number
- CN105808362A CN105808362A CN201610130094.3A CN201610130094A CN105808362A CN 105808362 A CN105808362 A CN 105808362A CN 201610130094 A CN201610130094 A CN 201610130094A CN 105808362 A CN105808362 A CN 105808362A
- Authority
- CN
- China
- Prior art keywords
- program
- party
- communication means
- window
- general
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Character Input (AREA)
Abstract
一种通用的自动对接任意第三方程序的通信方法,该通信方法中,程序A需要获取程序B的输出,程序B运行输出的窗口处于顶层位置,所述通信方法包括如下步骤:(1)程序A启动运行;(2)程序A启动子进程B;(3)程序A进行截屏;程序A对截屏图像进行图像分割,获取B窗口的截图;(4)程序对截图进行字符识别,识别的字符串就是程序B的输出。本发明提供一种适用性良好、完全自动化的通用的自动对接任意第三方程序的通信方法。
Description
技术领域
本发明涉及程序之间的通信方法,尤其是一种对接任意第三方程序的通信方法。
背景技术
程序或者软件之间的远程、异地通信需要依赖以太网数字通信技术,这是众所周知的;对于本地通信(两个程序或软件部署于同一台计算机)则有更多的选择,可以使用共享内存、读写管道、窗口监控、硬盘文件、乃至以太网方式。程序之间的通信实现视程序开发的模式不同而有差异较大的难度,如果两个程序都是同一开发团队、或者属不同团队但都是在开发动态过程中的,则双方协商一种交互模式或协议,这是不难实现的;但当一个程序已经处于发布后的状态、且停止后续开发、或者说重启开发困难很大的时候,那么与这样的程序通信会有较多的不便,但基本上还是有很多途径的。
例如,程序A和程序B之间通信,程序B是一个图形界面程序。当两者处于同一台机器时,程序A可以通过指定窗口标题TITLE来枚举当前桌面的所有窗口,从而得到当前TITLE窗口的句柄,然后获取窗口内部的文本输出,从而得知程序B的输出。而程序B窗口的标题TITLE由程序A开发者通过WINSPY之类的工具检测得到。当程序A和B是异地时,可以在程序B部署的机器上设置一个代理软件,该软件完成以上的窗口监控功能,并通过网络SOCKET方式与A通信。这种方式也有一定局限,例如程序B如果采用适当的窗口隐藏或保护机制,则程序A是很难检测到它的标题、或者枚举到它的句柄。腾讯的QQ聊天窗口就有这样的保护机制,以免聊天内容被侦听。当程序B是一个控制台程序(即只有类似DOS型字符窗口)时,程序A可以在内部以子进程方式启动B,并建立与B通信的读写管道来获取B的输出。读写管道方式有一个显著的缺点,就是B的输出只有当B进程结束后才能写入管道,在之前管道是堵塞的,A是无法读取的,这就给通信的实时性带来阻碍。
由此可见程序之间的现有通信方式都或多或少地存在不足、或不适用之处。
发明内容
为了克服已有程序之间通信方式的适用性较差、自动化程度较低的不足,本发明提供一种适用性良好、完全自动化的通用的自动对接任意第三方程序的通信方法。
本发明解决其技术问题所采用的技术方案是:
一种通用的自动对接任意第三方程序的通信方法,该通信方法中,程序A需要获取程序B的输出,程序B运行输出的窗口处于顶层位置,所述通信方法包括如下步骤:
(1)程序A启动运行;
(2)程序A启动子进程B;
(3)程序A进行截屏;
(4)程序A对截屏图像进行图像分割,获取B窗口的截图;
(5)程序对截图进行字符识别,识别的字符串就是程序B的输出。
进一步,所述步骤(3)、(4)、(5)反复进行。
再进一步,所述步骤(5)中,进行字符识别前进行比对预处理,进一步分割出有字符输出更新的图像部分进行识别。
更进一步,所述比对预处理的方式为:对前后相邻2帧截图图像作帧差运算,在设定阈值下提取像素值有变动的部分图像。
程序A以子进程方式启动程序B时,程序B的窗口覆盖了程序A的窗口。
如果程序A和程序B部署于不同计算机,程序A和部署于程序B的计算机的代理软件进行SOCKET通信。
本发明的技术构思为:本申请旨在研究一种适用性更广、完全自动化的对接任意形式的第三方程序的通信方法,需要指出的是如同上面举例而言,通信方式更侧重于如何从第三方程序获取其输出;至于给予第三方程序的输入,则由于启动第三方程序进程时可以自带参数,所以相对较容易,因而本申请不予过多的阐述。
本发明的有益效果主要表现在:适用性良好、完全自动化。
附图说明
图1是一种通用的自动对接任意第三方程序的通信方法的流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1,一种通用的自动对接任意第三方程序的通信方法,程序A需要获取程序B的输出,对于程序B不论其是控制台程序抑或是图形窗口程序,其运行输出的窗口处于顶层位置,没有被其他第三方窗口遮挡。这是由于B进程是程序A的子进程,自然覆盖在A进程的窗口之上。程序A中可以使用截屏方式获取当前屏幕图形,通过图像分割处理,获得进程B的输出窗口的截图。对该截图使用OCR印刷体字符识别获得程序B的输出结果。
程序A以子进程方式启动程序B时,程序B的窗口覆盖了程序A的窗口,但这不影响对程序B窗口的字符识别,由于程序B窗口在顶层,反而更易于图像分割提取程序B窗口的截图。
首先假设程序A和程序B部署于同台计算机,如果在异地时,程序A只需和部署于程序B的计算机的代理软件进行SOCKET通信,而该代理需要完成的功能和如下程序A将要完成的处理功能相仿。
(1)程序A启动运行;
(2)程序A启动子进程B;
(3)程序A进行截屏;
(4)程序A对截屏图像进行图像分割,获取B窗口的截图;
(5)程序对截图进行字符识别,识别的字符串就是程序B的输出;
为提高实时性,以上步骤(3)、(4)、(5)可以反复进行,尤其是在步骤(5)进行字符识别前进行比对预处理,进一步分割出有字符输出更新的图像部分进行识别。比对预处理的原理是对前后相邻2帧截图图像作帧差运算,在适当阈值下提取像素值有变动的部分图像。
本实施例中,截图操作除了进程B的窗口在顶层外,还有一个有利条件是进程B的窗口位置一般是固定的,在依赖于当前屏幕分辨率的情形下,B进程窗口位置可以精确计算得到,同样窗口的大小也可以依赖于屏幕的分辨率进行精确计算得到,这样可以避免图像分割处理而精确地获取截图。
比对预处理,由于截屏图像的像素值较光学成像的像素分布更为稳定,所以在帧差图像操作下,依赖适当的阈值就能分割出前后有变化的图像区域。
字符识别依赖第三方算法引擎,在模式识别领域内,印刷体中英文混合识别已经达到工业上可应用的成熟程度,一般产品的识别精度最低也会高于95%。
Claims (6)
1.一种通用的自动对接任意第三方程序的通信方法,其特征在于:该通信方法中,程序A需要获取程序B的输出,程序B运行输出的窗口处于顶层位置,所述通信方法包括如下步骤:
(1)程序A启动运行;
(2)程序A启动子进程B;
(3)程序A进行截屏;
(4)程序A对截屏图像进行图像分割,获取B窗口的截图;
(5)程序对截图进行字符识别,识别的字符串就是程序B的输出。
2.如权利要求1所述的通用的自动对接任意第三方程序的通信方法,其特征在于:所述步骤(3)、(4)、(5)反复进行。
3.如权利要求1或2所述的通用的自动对接任意第三方程序的通信方法,其特征在于:所述步骤(5)中,进行字符识别前进行比对预处理,进一步分割出有字符输出更新的图像部分进行识别。
4.如权利要求3所述的通用的自动对接任意第三方程序的通信方法,其特征在于:所述比对预处理的方式为:对前后相邻2帧截图图像作帧差运算,在设定阈值下提取像素值有变动的部分图像。
5.如权利要求1或2所述的通用的自动对接任意第三方程序的通信方法,其特征在于:程序A以子进程方式启动程序B时,程序B的窗口覆盖了程序A的窗口。
6.如权利要求1或2所述的通用的自动对接任意第三方程序的通信方法,其特征在于:如果程序A和程序B部署于不同计算机,程序A和部署于程序B的计算机的代理进行SOCKET通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610130094.3A CN105808362A (zh) | 2016-03-08 | 2016-03-08 | 一种通用的自动对接任意第三方程序的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610130094.3A CN105808362A (zh) | 2016-03-08 | 2016-03-08 | 一种通用的自动对接任意第三方程序的通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105808362A true CN105808362A (zh) | 2016-07-27 |
Family
ID=56467876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610130094.3A Pending CN105808362A (zh) | 2016-03-08 | 2016-03-08 | 一种通用的自动对接任意第三方程序的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808362A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574786A (zh) * | 2017-03-08 | 2018-09-25 | 柯尼卡美能达株式会社 | 图像处理装置、设定值设定方法以及记录有设定值设定程序的计算机可读取的记录介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719210A (zh) * | 2009-12-25 | 2010-06-02 | 武汉大学 | 基于linux平台数字版权管理的文件使用控制方法 |
CN102681941A (zh) * | 2012-05-15 | 2012-09-19 | 北京理工大学 | 一种可扩展的嵌入式仿真测试系统 |
CN103713807A (zh) * | 2014-01-13 | 2014-04-09 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN104090762A (zh) * | 2014-07-10 | 2014-10-08 | 福州瑞芯微电子有限公司 | 一种截图处理装置和方法 |
US20150089363A1 (en) * | 2009-08-24 | 2015-03-26 | Kryon Systems Ltd. | Display-independent recognition of graphical user interface control |
CN104657423A (zh) * | 2015-01-16 | 2015-05-27 | 北京合辉信息技术有限公司 | 应用间内容分享方法及其装置 |
-
2016
- 2016-03-08 CN CN201610130094.3A patent/CN105808362A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150089363A1 (en) * | 2009-08-24 | 2015-03-26 | Kryon Systems Ltd. | Display-independent recognition of graphical user interface control |
CN101719210A (zh) * | 2009-12-25 | 2010-06-02 | 武汉大学 | 基于linux平台数字版权管理的文件使用控制方法 |
CN102681941A (zh) * | 2012-05-15 | 2012-09-19 | 北京理工大学 | 一种可扩展的嵌入式仿真测试系统 |
CN103713807A (zh) * | 2014-01-13 | 2014-04-09 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN104090762A (zh) * | 2014-07-10 | 2014-10-08 | 福州瑞芯微电子有限公司 | 一种截图处理装置和方法 |
CN104657423A (zh) * | 2015-01-16 | 2015-05-27 | 北京合辉信息技术有限公司 | 应用间内容分享方法及其装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574786A (zh) * | 2017-03-08 | 2018-09-25 | 柯尼卡美能达株式会社 | 图像处理装置、设定值设定方法以及记录有设定值设定程序的计算机可读取的记录介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102460737B1 (ko) | 공중 필기 인식을 위한 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장 매체 | |
CN109684803B (zh) | 基于手势滑动的人机验证方法 | |
CN111860479B (zh) | 光学字符识别方法、装置、电子设备及存储介质 | |
Tan et al. | Mirror detection with the visual chirality cue | |
CN111753701B (zh) | 应用程序的违规检测方法、装置、设备和可读存储介质 | |
CN109309844B (zh) | 视频台词处理方法、视频客户端及服务器 | |
CN111291572B (zh) | 一种文字排版方法、装置及计算机可读存储介质 | |
CN110727668B (zh) | 数据清洗方法及装置 | |
CN112241452A (zh) | 一种模型训练方法、装置、电子设备及存储介质 | |
KR20000057730A (ko) | 문자 분할 사용자 인터페이스를 갖춘 수기 정보 처리 시스템 | |
JP7389824B2 (ja) | オブジェクト識別方法と装置、電子機器及び記憶媒体 | |
CN112182292B (zh) | 视频检索模型的训练方法、装置、电子设备及存储介质 | |
EP3846122B1 (en) | Method and apparatus for generating background-free image, device, and medium | |
CN112561053B (zh) | 图像处理方法、预训练模型的训练方法、装置和电子设备 | |
CN113657395B (zh) | 文本识别方法、视觉特征提取模型的训练方法及装置 | |
CN112507090A (zh) | 用于输出信息的方法、装置、设备和存储介质 | |
CN111862031B (zh) | 一种人脸合成图检测方法、装置、电子设备及存储介质 | |
CN103258021B (zh) | 一种基于行为分析的字符终端特征数据提取方法 | |
US9418281B2 (en) | Segmentation of overwritten online handwriting input | |
CN105808362A (zh) | 一种通用的自动对接任意第三方程序的通信方法 | |
CN111476090A (zh) | 水印识别方法和装置 | |
CN115905016A (zh) | 一种BIOS Setup搜索功能测试方法、装置、电子设备及存储介质 | |
CN112860535B (zh) | 一种用户页面的测试方法、装置、电子设备及存储介质 | |
Zheng et al. | Performance analysis of a moving target tracking method based on computer vision | |
Han et al. | Efficient page layout analysis on small devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160727 |