著录项信息
专利名称 | 计算机屏幕捕获监控及记录方法 |
申请号 | CN200410051020.8 | 申请日期 | 2004-08-05 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2005-03-02 | 公开/公告号 | CN1588302 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/14 | IPC分类号 | G;0;6;F;3;/;1;4查看分类表>
|
申请人 | 深圳市友邻通讯设备有限公司 | 申请人地址 | 广东省深圳市南山区蛇口招商路水湾大厦七楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市友邻通讯设备有限公司 | 当前权利人 | 深圳市友邻通讯设备有限公司 |
发明人 | 刘敬伟 |
代理机构 | 深圳睿智专利事务所 | 代理人 | 朱晓光 |
摘要
一种计算机屏幕捕获监控及记录方法,基于计算机系统,尤其是设置了屏幕捕捉模块(10),工作步骤包括上层应用程序(11)利用接口(15)来设置屏捕参数;屏捕外壳(12)打开定时器(14);内核(13)进入自动屏捕状态抓取图像;并采用缩小抓图区的办法减小数据量;然后把图像传递到屏幕捕捉模块(10)之外;屏捕需要结束时,屏捕外壳(12)关闭定时器(14)并通知内核(13)捕获一幅关键帧作为停止帧;本发明通过特有的算法来获取屏幕图像,大大减少了图像所占用的空间,并增快了抓屏速度。
技术领域 本发明涉及电数字数据处理的方法,特别涉及一种计算机屏幕图 像的捕获技术,尤其涉及对连续图像所进行的计算机屏幕捕获监控及记录方法。\n背景技术 计算机屏幕捕获监控及记录技术在现在的信息社会得到了大量的 应用,比如呼叫中心的质量管理软件中,除开话音记录外,话务员操作呼叫中心软件 的方法也需要同步记录下来,这里就需要用到屏幕捕获技术,并把获得的数据文件记 录下来,可以利用某些专门做远程监控的软件来监控话务员,但是由于很少有远程监 控软件能够提供集成接口,使得不能把呼叫中心软件和远程监控软件集成起来,所以 操作起来非常的不方便,灵活性不高;也可以采用摄像机来做监控,这样就大大增加 了硬件成本的投入,而且非常的不方便,不适于呼叫中心的应用。如果需要实现计算 机监控,则需要捕获连续的图像,目前的屏幕捕获大都采用定时捕获整个屏幕然后压 缩的方式,这样形成的图像数据非常大,不利于网络传输,而且可能会影响到被监控 机器的正常操作。\n发明内容 本发明的目的是提供一种可以有效克服上述问题的计算机屏幕捕 获监控及记录方法,该技术提供了接口供集成应用,通过该方法,可以捕捉连续的屏 幕图像,而且产生的数据量非常少,并在处理图像数据后,发送给监控机器进行远程 监控,或者存为文件,供日后播放。\n本发明以屏幕捕捉模块为主,并与图像压缩模块和数据处理模块顺序相连,完成 屏幕捕获和图像处理的功能。\n其中:屏幕捕捉模块用来对外提供接口设置屏捕参数,然后依据用户设置好的参 数来捕获屏幕图像。\n图像压缩模块负责在设置图像压缩率、选择图像格式后,增加一个包括压缩信息 的文件头,然后采用线程来压缩图像,并把压缩后的图像数据传递给数据处理模块。\n数据处理模块用来把接收到的经过压缩的图像数据增加一个帧信息后封装成图像 帧,作为获得的图像帧发送出去。\n本发明通过实施以下的技术方案来实现:\n实施一种计算机屏幕捕获监控及记录方法,基于包括硬盘、内存、主板、显示器、 键盘、鼠标、操作系统以及上层应用程序所构成的计算机系统,其措施是:设置屏幕 捕捉模块,所述屏幕捕捉模块的工作步骤包括:\na.上层应用程序利用屏捕外壳提供的接口来设置屏捕参数;\nb.上层应用程序调用StartCapture函数通知屏捕外壳开始屏捕;\nc.屏捕外壳通知内核捕获一幅关键帧作为开始帧;\nd.屏捕外壳打开定时器或设置需要的消息钩子;\ne.屏捕外壳按照上层应用程序设置的参数来控制内核进行屏捕,进入自动屏 捕状态。\nF.内核在每次收到屏捕外壳的屏捕通知后,按照屏捕外壳传递进来的屏捕控制 参数来来获取屏幕图像数据;\ng.内核触发OnCapture事件,把转换颜色位后的图像传递到屏幕捕捉模块之外;\nh.屏捕需要结束时,上层应用程序调用StopCapture函数通知屏捕外壳停止屏 捕;\ni.屏捕外壳关闭定时器或取消设置的钩子;\nj.屏捕外壳通知内核捕获一幅关键帧作为停止帧。\n步骤f所述的获取屏幕图像数据可以采用屏幕分区或是抓取屏幕重画区域的缩 小抓图区域的方法,屏幕分区法的步骤包括:\na.将整个屏幕按行列分成若干小块;\nb.将各个小块的图像逐个抓取;\nc.把各个小块图像所在的起始坐标及图片大小也记录下来;\nd.把各个小块图像及其位置等信息作为独立的图像数据传递下去。 抓取屏幕重画区域法的步骤包括:\na.首先将一幅图像作为当前图像,并暂存图元数据;\nb.消息钩子捕捉到图像变化的消息时,发信息给屏捕外壳;\nc.屏捕外壳通知内核通过钩子函数仅仅抓取重画区域的图像;\nd.把重画区域的图像所在的位置及大小记录下来;\ne.把重画区域的图像及其位置大小等数据传递给图像压缩模块;\nf.在抓取若干幅图像之后,抓取一幅原始屏幕图像作为关键帧,以减少失真。\n所述屏幕捕捉模块还连接图像压缩模块,该模块内部工作流程包括:\na.接收来自屏幕捕捉模块或者图像比较模块发送过来的图像数据;\nb.查询上层用户设置的压缩率、压缩格式等参数;\nc.按照上述参数来压缩所获得的图像数据;\nd.在经过压缩后的图像数据前增加一个头信息,头信息内包括压缩所用的压缩 率和压缩格式、压缩后的文件大小等信息;\ne.把经过处理后的图像数据发送给数据处理模块做进一步的处理。\n所述图像压缩模块还连接数据处理模块,所述数据处理模块内部的工作流程包 括:\na.数据处理模块接收到从图像压缩模块或鼠标捕捉模块传递过来的数据,判断 是图像数据,还是鼠标数据;\nb.在数据前加上一个帧头,帧头内包括用来标识是图像帧还是数据帧的数据类 型标识符,用来规定当前帧播放时间的从开始到当前的时间差,以及其它数 据信息;\nc.不断地接收到数据,形成数据帧序列;\nd.查询上层用户是否需要把所获得的屏幕图像数据存为文件;\ne.如果需要存为文件,则把帧序列发送给文件存储模块;\nf.查询上层用户是否需要对被监控机器进行远程监控;\ng.如果需要进行远程监控,则把帧序列发送给监控接口模块;\n所述屏幕捕捉模块还连接图像比较模块,该模块内部工作流程包括:\na.接收到屏幕捕捉模块发送过来的屏幕图像;\nb.启动比较运算线程,把接收到的屏幕图像与同一个屏幕区域的前一幅图像进行 比较,选出变化过的图像;\nc.通过对像素进行异或运算把图像中没有发生变化的像素颜色变为0,即黑色,而 变化了的像素则以差异值的形式保留下来,这样可以在后面的压缩处理中得 到更高的压缩率;\nd.由于在捕捉屏幕图像的时候采用了分屏捕捉的方式,捕捉到的许多区域图像根 本就没有发生变化,这样在进行异或运算后得到的是一幅全黑色的图像,但在 进行压缩时,这样的图像还会占一定的数据量,而实际上这幅图根本就没必要 保留,这时就可以把这幅图丢弃;\ne.把经过处理后的数据所在的内存地址作为消息的参数,然后通过消息事件交给 图像压缩模块。\n所述数据处理模块连接文件存储模块、鼠标捕捉模块和监控接口模块,所述文件 存储模块内部的工作流程包括:\na.文件存储模块接收来自数据处理模块的数据帧信息,缓存进一个临时文件;\nb.把包括数据帧存放在文件内的偏移值,帧大小等信息在内的数据帧信息组成 一条帧信息记录,存入一个临时的列表内;\nc.如果没有接收到屏捕结束命令,则继续上面的两步;\nd.如果接收到上层应用程序的屏捕结束命令,则把记录帧信息的临时列表添加 到临时文件的末尾;\ne.压缩数据帧及帧信息记录组成的文件;\nf.增加一个包括文件大小、帧记录在文件内的偏移量等信息的文件头到临时文 件,形成所需的屏捕文件;\ng.把形成的屏捕文件存入上层应用程序指定的地方。\n所述监控接口模块包括数据接收单元、数据处理单元、数据发送单元、网络连 接管理单元,内部工作流程包括:\na.数据处理模块把处理好的数据帧信息通过消息的形式发送给数据接收单元;\nb.数据接收单元收到消息后,分析消息参数,获取数据帧信息;\nc.数据处理单元在原有的数据帧信息上添加头信息,包括监控机器的IP地址 等;\nd.数据发送单元按照头信息内的IP地址通过网络连接管理单元连接网络,把 帧数据发送给监控机器。\n所述鼠标捕捉模块包括鼠标数据捕获单元、数据比较单元、数据发送单元,内 部工作流程包括:\na.鼠标数据捕获单元捕获鼠标的数据,包括一个时间点上的鼠标形状、鼠标状 态、鼠标位置等信息;\nb.数据比较单元把鼠标数据捕获单元获得的鼠标信息数据与上一次获得的数据 相比较,如果有变化,则保留下来,如果没有变化,则舍弃;\nc.数据发送单元用来通过发送参数为鼠标数据所在的内存地址等信息的消息, 把经过比较后保留下来的鼠标数据发送给数据处理模块。\n所述屏幕捕捉模块的屏捕外壳按照上层应用程序的需求所设置的参数包括:\na.关键帧间隔(KeyFrameInterval)\nb.屏捕定时间隔(CaptureInterval)\nc.是否捕捉屏幕变化区域(CaptuerChange)\nd.屏捕通知列队长度(CaptuerQueueLength)\ne.屏幕分区行数(GridRows)\nf.屏幕分区列数(GridCols)\ng.颜色位数(ColorBits)。\n所述屏幕捕捉模块的接口函数包括:\na.开始屏捕函数(StartCapture),功能:开始进行屏捕;首先会通知捕获 一幅关键帧作为开始帧,然后打开屏捕定时器,设置需要的消息钩子,进入 自动屏捕状态。\nb.停止屏捕函数(StopCapture),功能:停止屏捕;先关闭屏捕定时器,取消 设置的钩子,再通知捕获一幅关键帧作为停止帧。\n所述屏幕捕捉模块的事件包括:\n屏捕事件(OnCapture),由截屏内核触发,把捕获到的图像传输出来。\n与现有技术相比较,本发明提供的计算机屏幕捕获监控及记录方法可以用来捕捉 连续的屏幕图像,产生的数据量非常少,非常适合于网络传输。在处理图像数据后, 或把所捕获到的数据帧序列按顺序发送给监控机器进行远程监控,或存为文件,供日 后播放。本发明采用模块结构,把不同的功能集成在不同的模块之内,便于日后程序 升级和维护。本发明还提供了参数的设置,可在多处根据用户需求和用户环境来选择 不同的监控方案,而且,如果日后有新的方案,也可以很快的加入到各个模块内,而 不需要改动所有的代码,使得程序在升级、维护和集成方面更加灵活方便。此外,本 发明还提供了接口供集成应用,可以将本发明的程序集成到需要屏捕监控功能的大型 软件内,可靠性高,便于维护和升级。\n附图说明 图1是本发明计算机屏幕捕获监控及记录方法屏幕捕捉模块内结 构方框图;\n图2是本发明所述方法屏幕捕捉模块的工作流程图;\n图3是本发明所述方法各个模块之间连接方框示意图;\n图4是本发明所述方法监控接口模块内结构方框图;\n图5是本发明所述方法文件存储模块的工作流程图;\n图6是本发明所述方法数据处理模块的工作流程图;\n图7是本发明所述方法鼠标捕捉模块内结构方框图。\n具体实施方式 下面结合附图及最佳实施例对本发明做进一步详尽的描述。\n如图1、图2所示:一种计算机屏幕捕获监控最佳方法,基于包括硬盘、内存、 主板、显示器、键盘、鼠标、操作系统以及上层应用程序11所构成的计算机系统, 尤其是,在最佳实施方法中设置屏幕捕捉模块10,所述屏幕捕捉模块10的工作步骤 包括:\na.上层应用程序11利用屏捕外壳12提供的接口15来设置屏捕参数;\nb.上层应用程序11调用StartCapture函数通知屏捕外壳12开始屏捕;\nc.屏捕外壳12通知内核13捕获一幅关键帧作为开始帧;\nd.屏捕外壳12打开定时器14或设置需要的消息钩子;\ne.屏捕外壳12按照上层应用程序11设置的参数来控制内核13进行屏捕,进 入自动屏捕状态;\nF.内核13在每次收到屏捕外壳12的屏捕通知后,按照屏捕外壳12传递进来 的屏捕控制参数来来获取屏幕图像数据;\ng.内核13触发OnCapture事件,把转换颜色位后的图像传递到屏幕捕捉模块10 之外;\nh.屏捕需要结束时,上层应用程序11调用StopCapture函数通知屏捕外壳12 停止屏捕;\ni.屏捕外壳12关闭定时器14或取消设置的钩子;\nj.屏捕外壳12通知内核13捕获一幅关键帧作为停止帧。\n步骤f所述的获取屏幕图像数据可以采用屏幕分区或是抓取屏幕重画区域的缩 小抓图区域的方法,屏幕分区法的步骤包括:\na.将整个屏幕按行列分成若干小块;\nb.将各个小块的图像逐个抓取;\nc.把各个小块图像所在的起始坐标及图片大小也记录下来;\nd.把各个小块图像及其位置等信息作为独立的图像数据传递下去。\n抓取屏幕重画区域法的步骤包括:\na.首先将一幅图像作为当前图像,并暂存图元数据;\nb.消息钩子捕捉到图像变化的消息时,发信息给屏捕外壳(12);\nc.屏捕外壳(12)通知内核(13)通过钩子函数仅仅抓取重画区域的图像;\nd.把重画区域的图像所在的位置及大小记录下来;\ne.把重画区域的图像及其位置大小等数据传递给图像压缩模块;\nf.在抓取若干幅图像之后,抓取一幅原始屏幕图像作为关键帧,以减少失真。\n所述屏幕捕捉模块10还连接图像压缩模块30,该模块30内部工作流程包括:\na.接收来自屏幕捕捉模块10或者图像比较模块20发送过来的图像数据;\nb.查询上层用户设置的压缩率、压缩格式等参数;\nc.按照上述参数来压缩所获得的图像数据;\nd.在经过压缩后的图像数据前增加一个头信息,头信息内包括压缩所用的压缩 率和压缩格式、压缩后的文件大小等信息;\ne.把经过处理后的图像数据发送给数据处理模块40做进一步的处理。\n如图6所示:所述图像压缩模块30还连接数据处理模块40,所述数据处理模块 40内部的工作流程包括:\na.数据处理模块接收到从图像压缩模块30或鼠标捕捉模块110传递过来的数 据,判断是图像数据,还是鼠标数据;\nb.在数据前加上一个帧头,帧头内包括用来标识是图像帧还是数据帧的数据类 型标识符,用来规定当前帧播放时间的从开始到当前的时间差,以及其它数 据信息;\nc.不断的接收到数据,形成数据帧序列;\nd.查询上层用户是否需要把所获得的屏幕图像数据存为文件;\ne.如果需要存为文件,则把帧序列发送给文件存储模块120;\nf.查询上层用户是否需要对被监控机器进行远程监控;\ng.如果需要进行远程监控,则把帧序列发送给监控接口模块130;\n所述屏幕捕捉模块10还连接图像比较模块20,该模块20内部工作流程包括:\na.接收到屏幕捕捉模块10发送过来的屏幕图像;\nb.启动比较运算线程,把接收到的屏幕图像与同一个屏幕区域的前一幅图像进 行比较,选出变化过的图元;\nc.通过对像素进行异或运算把图像中没有发生变化的像素颜色变为0,即黑色, 而变化了的像素则以差异值的形式保留下来,这样可以在后面的压缩处理中 得到更高的压缩率;\nd.由于在捕捉屏幕图像的时候采用了分屏捕捉的方式,捕捉到的许多区域图像 根本就没有发生变化,这样在进行异或运算后得到的是一幅全黑色的图像, 但在进行压缩时,这样的图像还会占一定的数据量,而实际上这幅图根本就 没必要保留,这时就可以把这幅图丢弃;\ne.把经过处理后的数据所在的内存地址作为消息的参数,然后通过消息事件交 给图像压缩模块30。\n如图5所示:所述数据处理模块40连接文件存储模块120、鼠标捕捉模块110 和监控接口模块130,所述文件存储模块120内部的工作流程包括:\na.文件存储模块(120)接收来自数据处理模块40的数据帧信息,缓存进一个 临时文件;\nb.把包括数据帧存放在文件内的偏移值,帧大小等信息在内的数据帧信息组 成一条帧信息记录,存入一个临时的列表内;\nc.如果没有接收到屏捕结束命令,则继续上面的两步;\nd.如果接收到上层应用程序的屏捕结束命令,则把记录帧信息的临时列表添 加到临时文件的末尾;\ne.压缩数据帧及帧信息记录组成的文件;\nf.增加一个包括文件大小、帧记录在文件内的偏移量等信息的文件头到临时 文件,形成所需的屏捕文件;\ng.把形成的屏捕文件存入上层应用程序指定的地方。\n如图4所示:所述监控接口模块130包括数据接收单元131、数据处理单元132、 数据发送单元133、网络连接管理单元134,内部工作流程包括:\na.数据处理模块40把处理好的数据帧信息通过消息的形式发送给数据接收单 元131;\nb.数据接收单元131收到消息后,分析消息参数,获取数据帧信息;\nc.数据处理单元132在原有的数据帧信息上添加头信息,包括监控机器200 的IP地址等;\nd.数据发送单元133按照头信息内的IP地址通过网络连接管理单元134连 接网络190,把帧数据发送给监控机器200。\n如图7所示:所述鼠标捕捉模块110包括鼠标数据捕获单元111、数据比较单元 112、数据发送单元113,内部工作流程包括:\na.鼠标数据捕获单元111捕获鼠标的数据,包括一个时间点上的鼠标形状、 鼠标状态、鼠标位置等信息;\nb.数据比较单元112把鼠标数据捕获单元111获得的鼠标信息数据与上一次 获得的数据相比较,如果有变化,则保留下来,如果没有变化,则舍弃;\nc.数据发送单元113用来通过发送参数为鼠标数据所在的内存地址等信息的 消息,把经过比较后保留下来的鼠标数据发送给数据处理模块40。\n所述屏幕捕捉模块10的屏捕外壳12按照上层应用程序的需求所设置的参数包 括:\na.关键帧间隔(KeyFrameInterval)\nb.屏捕定时间隔(CaptureInterval)\nc.是否捕捉屏幕变化区域(CaptuerChange)\nd.屏捕通知列队长度(CaptuerQueueLength)\ne.屏幕分区行数(GridRows)\nf.屏幕分区列数(Grid Cols)\ng.颜色位数(ColorBits)。\n所述屏幕捕捉模块10的接口函数包括:\na.开始屏捕函数(StartCapture),功能:开始进行屏捕;首先会通知捕获 一幅关键帧作为开始帧,然后打开屏捕定时器,设置需要的消息钩子,进入 自动屏捕状态。\nb.停止屏捕函数(StopCapture),功能:停止屏捕;先关闭屏捕定时器,取消 设置的钩子,再通知捕获一幅关键帧作为停止帧。\n所述屏幕捕捉模块10的事件包括:\n屏捕事件(OnCapture),由截屏内核触发,把捕获到的图像传输出来。\n本发明总的工作原理参照图1、图3描述:用户在运行本发明所述的屏捕程序之 前先设置各个模块内部运行时所需要的参数,如通过屏幕捕捉模块10提供的接口15 设置屏捕定时间隔:CaptureInterval,此参数为0时,是不使用定时方式,为其他 数字时,是以秒为单位的时间间隔。屏幕分区行数:GridRows,最小值为1。屏幕分 区列数:GridCols,最小值为1。通过图像比较模块20设置“是否进行图像比较”、 “是否使用差异图像”等参数。\n上层应用程序11发送需要开始屏捕的命令给各个模块,激活各个模块完成各种 准备工作,如建立线程、创建对象、分配内存等工作,然后进入等待数据状态。\n屏幕捕捉模块10中的控制外壳12在接收到开始屏捕的命令后,就根据用户设定的 捕获方式,计算好截图的区域,指定屏捕图像的类型参数(是否关键帧),生成屏捕 通知消息通知内核13执行抓图操作。\n由于需要捕获的图像非常多,如果不进行处理,就会造成需要传递和存储的数据 量非常大,使得屏捕技术不能实际应用,就需要采用各种方法尽可能减少数据量。缩 小屏捕抓图区域是有效的减少数据量的办法,而且可以提高抓图的速度。本发明提供 了二种可供选择的缩小抓图区域的办法:\n1.分屏幕区域\n屏幕分区方式是指把整个屏幕按行列分成多个小块,小块的大小形状通过设置分 区的行数和列数决定,然后依次抓取每一小块分区的图像,从而得到整个屏幕的图像。 虽然分区并不能减少整体上的数据量,但经过测试发现,在总的区域大小相同的情况 下,分区抓图的整体速度明显比直接抓大区域要快得多,而且抓图造成的屏幕停顿感 也小得多,在把整个屏幕分成40个区时,基本上感觉不到停顿的情况。由于分区取图 的速度比较快,可以缩短抓图的时间间隔,提高屏捕图像的及时性,经过测试,在行 列设置合适的情况下,至少可以达到25帧/秒的速度,而且对操作无任何影响。而且 分区后进行图像比较会更方便,可以只保留发生了变化的区域,在传输、处理、存储 和显示上效果都非常好。屏幕区域的划分方式由“屏幕分区行数”和“屏幕分区列数” 两个参数设定。\n由于最后需要得到的是一连串表示不同时间的屏幕变化的图像,所以在上层应用 程序11通知开始抓屏后,就需要自动去捕获屏幕图像,这样就需要有一个抓图的时间 控制方案,来触发屏捕以进行自动屏捕,如果用户设置采用此种方法,则触发屏捕的 方式可以设置为定时器方式和鼠标、键盘动作触发方式,用户通过参数的设置可以设 定采用两种中的任何一种,也可以两种同时使用。\n2.屏幕重画区域\n取屏幕重画区域不会产生多余的图像数据,非常及时和准确。当上层应用程序设 定的抓图时间控制方案为根据屏幕重画消息抓图的方式时,屏捕外壳把根据重画区域 信息构造的屏捕开始的消息发送给内核后,屏捕内核根据消息参数,包括需要捕获的 图像在屏幕中所处的位置和图像大小等,来捕获屏幕重画区域。\n如果采用此种方式来缩小屏幕区域,则触发屏捕的方式为根据屏幕重画消息抓图 的方式。由于计算机屏幕每次变化的区域一般都比较小,所以根据Windows的屏幕重 画消息取到屏幕变化的区域进行抓图,捕获的图像数据将小得多,而且能及时准确的 反映屏幕的变化。重画消息是利用消息钩子捕捉到的,与鼠标、键盘触发方式的实现 机制相同;当捕捉到屏幕重画消息时,钩子函数就会发送一个消息给屏捕模块外壳, 外壳就可以根据消息中的重画区域信息构造屏捕通知消息,由内核抓取重画区域的图 像。与鼠标、键盘触发方式相同,屏捕外壳在接收到开始屏捕的命令时设置钩子,在 接收到停止屏捕的命令后取消钩子。\n屏幕捕捉模块10中的内核13在收到抓图消息后,就开始启动线程进行抓图操作, 并把捕获的图像存为BMP类型的对象,然后根据消息内的参数“颜色位”把图像转换 为所需要的颜色位,再把图像发送到屏幕捕捉模块10之外,具体情况为:如果用户 认为不需要进行图像比较处理,则把图像发送给图像压缩模块30直接进行压缩,而 如果用户认为有必要,则把作为关键帧的图像发送给图像压缩模块30直接进行压缩, 而把作为差异帧的图像发送给图像比较模块20进行图像比较处理。\n如果用户认为有必要进行图像比较处理,则图像比较模块20也会被激活,等待 图像数据。在接收到图像数据之后,把捕捉到的屏幕图像进行比较,选出变化过的图 像,并通过异或运算把图像中没有发生变化的像素颜色清空,使所有没有变化的部分 都转换成黑色,而变化的像素只占小部分,然后把处理后的图像数据通过消息参数的 形式传递给图像压缩模块30。\n图像压缩模块30在接收到屏幕捕捉模块10或图像比较模块20发送过来的图像 数据后,就按照用户设置的压缩参数,如压缩率、压缩类型等,启动压缩线程来压缩 图像,并把压缩后的图像数据通过消息参数的形式传递给数据处理模块40。\n鼠标捕捉模块110按照上层应用程序11所设定的触发机制自动进行鼠标信息的 捕捉,然后把获得的鼠标信息与上一次的信息做比较,如果没有改变,则舍弃,如果 有改变,则发送到数据处理模块40。\n数据处理模块40在接收到压缩后的图像数据后,把帧信息与图像数据整合在一 起,形成一个帧,包括关键帧和差异帧,另外一方面,如果接收到鼠标捕捉模块110 发过来的鼠标数据,则把鼠标数据与帧信息整合在一起,形成鼠标帧,然后根据时间 顺序把这些帧发给监控接口模块130或文件存储模块120。\n监控接口模块130在收到从数据处理模块40发过来的帧后,增加一个包含消息 类型的消息头信息,然后查找内存中的监控机器信息记录表,按照表内所记录的监控 机器的地址信息,通过网络通讯技术(如Socket通讯)把数据消息发送给监控机器 200,监控机器200就可以按照数据形成的格式来解析出最终的图像数据,显示在监 控机器200的屏幕上。\n文件存储模块120在收到从数据处理模块40发过来的帧后,即把这些帧缓存进 一个临时文件内,一直到接收到停止屏捕的命令,然后把这个临时文件加上文件头, 文件头内包括一些此文件的信息,如文件内数据的大小等,再把整个文件按照用户设 定的压缩格式和压缩率等参数把文件压缩,最后把压缩后的文件存入上层应用程序指 定的路径。\n监控接口模块130如果接收到远程监控机器200的鼠标、键盘等控制消息,则在 监控接口模块130内的数据处理单元132内把控制数据从消息内解析出来,然后发给 控制单元135,然后按照控制数据来控制被监控机器,完成远程监控的功能;\n实践证明,本发明提供的计算机屏幕捕获监控及记录方法,可以捕捉到连续的屏 幕图像,而且产生的数据量非常少,非常适合于网络传输。在处理图像数据后,或把 所捕获到的数据帧序列按顺序发送给监控机器进行远程监控,或存为文件,供日后播 放。本发明采用模块结构,把不同的功能集成在不同的模块之内,便于日后程序升级 和维护。本发明还提供了参数的设置,可在多处根据用户需求和用户环境来选择不同 的监控方案,而且,如果日后有新的方案,也可以很快的加入到各个模块内,而不需 要改动所有的代码,使得程序在升级、维护和集成方面更加灵活方便。此外,本发明 还提供了接口供集成应用,可以将本发明的程序集成到需要屏捕监控功能的大型软件 内,可靠性高,便于维护和升级。
法律信息
- 2016-09-28
未缴年费专利权终止
IPC(主分类): G06F 3/14
专利号: ZL 200410051020.8
申请日: 2004.08.05
授权公告日: 2006.12.13
- 2006-12-13
- 2005-05-04
- 2005-03-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |