CN1290001C - 计算机屏幕捕获监控及记录方法 - Google Patents
计算机屏幕捕获监控及记录方法 Download PDFInfo
- Publication number
- CN1290001C CN1290001C CN 200410051020 CN200410051020A CN1290001C CN 1290001 C CN1290001 C CN 1290001C CN 200410051020 CN200410051020 CN 200410051020 CN 200410051020 A CN200410051020 A CN 200410051020A CN 1290001 C CN1290001 C CN 1290001C
- Authority
- CN
- China
- Prior art keywords
- screen
- data
- module
- image
- frame
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
一种计算机屏幕捕获监控及记录方法,基于计算机系统,尤其是设置了屏幕捕捉模块(10),工作步骤包括:上层应用程序(11)利用接口(15)来设置屏捕参数;屏捕外壳(12)打开定时器(14);内核(13)进入自动屏捕状态抓取图像;并采用缩小抓图区的办法减小数据量;然后把图像传递到屏幕捕捉模块(10)之外;屏捕需要结束时,屏捕外壳(12)关闭定时器(14)并通知内核(13)捕获一幅关键帧作为停止帧;本发明通过特有的算法来获取屏幕图像,大大减少了图像所占用的空间,并增快了抓屏速度。
Description
技术领域 本发明涉及电数字数据处理的方法,特别涉及一种计算机屏幕图像的捕获技术,尤其涉及对连续图像所进行的计算机屏幕捕获监控及记录方法。
背景技术 计算机屏幕捕获监控及记录技术在现在的信息社会得到了大量的应用,比如呼叫中心的质量管理软件中,除开话音记录外,话务员操作呼叫中心软件的方法也需要同步记录下来,这里就需要用到屏幕捕获技术,并把获得的数据文件记录下来,可以利用某些专门做远程监控的软件来监控话务员,但是由于很少有远程监控软件能够提供集成接口,使得不能把呼叫中心软件和远程监控软件集成起来,所以操作起来非常的不方便,灵活性不高;也可以采用摄像机来做监控,这样就大大增加了硬件成本的投入,而且非常的不方便,不适于呼叫中心的应用。如果需要实现计算机监控,则需要捕获连续的图像,目前的屏幕捕获大都采用定时捕获整个屏幕然后压缩的方式,这样形成的图像数据非常大,不利于网络传输,而且可能会影响到被监控机器的正常操作。
发明内容 本发明的目的是提供一种可以有效克服上述问题的计算机屏幕捕获监控及记录方法,该技术提供了接口供集成应用,通过该方法,可以捕捉连续的屏幕图像,而且产生的数据量非常少,并在处理图像数据后,发送给监控机器进行远程监控,或者存为文件,供日后播放。
本发明以屏幕捕捉模块为主,并与图像压缩模块和数据处理模块顺序相连,完成屏幕捕获和图像处理的功能。
其中:屏幕捕捉模块用来对外提供接口设置屏捕参数,然后依据用户设置好的参数来捕获屏幕图像。
图像压缩模块负责在设置图像压缩率、选择图像格式后,增加一个包括压缩信息的文件头,然后采用线程来压缩图像,并把压缩后的图像数据传递给数据处理模块。
数据处理模块用来把接收到的经过压缩的图像数据增加一个帧信息后封装成图像帧,作为获得的图像帧发送出去。
本发明通过实施以下的技术方案来实现:
实施一种计算机屏幕捕获监控及记录方法,基于包括硬盘、内存、主板、显示器、键盘、鼠标、操作系统以及上层应用程序所构成的计算机系统,其措施是:设置屏幕捕捉模块,所述屏幕捕捉模块的工作步骤包括:
a.上层应用程序利用屏捕外壳提供的接口来设置屏捕参数;
b.上层应用程序调用StartCapture函数通知屏捕外壳开始屏捕;
c.屏捕外壳通知内核捕获一幅关键帧作为开始帧;
d.屏捕外壳打开定时器或设置需要的消息钩子;
e.屏捕外壳按照上层应用程序设置的参数来控制内核进行屏捕,进入自动屏捕状态。
F.内核在每次收到屏捕外壳的屏捕通知后,按照屏捕外壳传递进来的屏捕控制参数来来获取屏幕图像数据;
g.内核触发OnCapture事件,把转换颜色位后的图像传递到屏幕捕捉模块之外;
h.屏捕需要结束时,上层应用程序调用StopCapture函数通知屏捕外壳停止屏捕;
i.屏捕外壳关闭定时器或取消设置的钩子;
j.屏捕外壳通知内核捕获一幅关键帧作为停止帧。
步骤f所述的获取屏幕图像数据可以采用屏幕分区或是抓取屏幕重画区域的缩小抓图区域的方法,屏幕分区法的步骤包括:
a.将整个屏幕按行列分成若干小块;
b.将各个小块的图像逐个抓取;
c.把各个小块图像所在的起始坐标及图片大小也记录下来;
d.把各个小块图像及其位置等信息作为独立的图像数据传递下去。抓取屏幕重画区域法的步骤包括:
a.首先将一幅图像作为当前图像,并暂存图元数据;
b.消息钩子捕捉到图像变化的消息时,发信息给屏捕外壳;
c.屏捕外壳通知内核通过钩子函数仅仅抓取重画区域的图像;
d.把重画区域的图像所在的位置及大小记录下来;
e.把重画区域的图像及其位置大小等数据传递给图像压缩模块;
f.在抓取若干幅图像之后,抓取一幅原始屏幕图像作为关键帧,以减少失真。
所述屏幕捕捉模块还连接图像压缩模块,该模块内部工作流程包括:
a.接收来自屏幕捕捉模块或者图像比较模块发送过来的图像数据;
b.查询上层用户设置的压缩率、压缩格式等参数;
c.按照上述参数来压缩所获得的图像数据;
d.在经过压缩后的图像数据前增加一个头信息,头信息内包括压缩所用的压缩率和压缩格式、压缩后的文件大小等信息;
e.把经过处理后的图像数据发送给数据处理模块做进一步的处理。
所述图像压缩模块还连接数据处理模块,所述数据处理模块内部的工作流程包括:
a.数据处理模块接收到从图像压缩模块或鼠标捕捉模块传递过来的数据,判断是图像数据,还是鼠标数据;
b.在数据前加上一个帧头,帧头内包括用来标识是图像帧还是数据帧的数据类型标识符,用来规定当前帧播放时间的从开始到当前的时间差,以及其它数据信息;
c.不断地接收到数据,形成数据帧序列;
d.查询上层用户是否需要把所获得的屏幕图像数据存为文件;
e.如果需要存为文件,则把帧序列发送给文件存储模块;
f.查询上层用户是否需要对被监控机器进行远程监控;
g.如果需要进行远程监控,则把帧序列发送给监控接口模块;
所述屏幕捕捉模块还连接图像比较模块,该模块内部工作流程包括:
a.接收到屏幕捕捉模块发送过来的屏幕图像;
b.启动比较运算线程,把接收到的屏幕图像与同一个屏幕区域的前一幅图像进行比较,选出变化过的图像;
c.通过对像素进行异或运算把图像中没有发生变化的像素颜色变为0,即黑色,而变化了的像素则以差异值的形式保留下来,这样可以在后面的压缩处理中得到更高的压缩率;
d.由于在捕捉屏幕图像的时候采用了分屏捕捉的方式,捕捉到的许多区域图像根本就没有发生变化,这样在进行异或运算后得到的是一幅全黑色的图像,但在进行压缩时,这样的图像还会占一定的数据量,而实际上这幅图根本就没必要保留,这时就可以把这幅图丢弃;
e.把经过处理后的数据所在的内存地址作为消息的参数,然后通过消息事件交给图像压缩模块。
所述数据处理模块连接文件存储模块、鼠标捕捉模块和监控接口模块,所述文件存储模块内部的工作流程包括:
a.文件存储模块接收来自数据处理模块的数据帧信息,缓存进一个临时文件;
b.把包括数据帧存放在文件内的偏移值,帧大小等信息在内的数据帧信息组成一条帧信息记录,存入一个临时的列表内;
c.如果没有接收到屏捕结束命令,则继续上面的两步;
d.如果接收到上层应用程序的屏捕结束命令,则把记录帧信息的临时列表添加到临时文件的末尾;
e.压缩数据帧及帧信息记录组成的文件;
f.增加一个包括文件大小、帧记录在文件内的偏移量等信息的文件头到临时文件,形成所需的屏捕文件;
g.把形成的屏捕文件存入上层应用程序指定的地方。
所述监控接口模块包括数据接收单元、数据处理单元、数据发送单元、网络连接管理单元,内部工作流程包括:
a.数据处理模块把处理好的数据帧信息通过消息的形式发送给数据接收单元;
b.数据接收单元收到消息后,分析消息参数,获取数据帧信息;
c.数据处理单元在原有的数据帧信息上添加头信息,包括监控机器的IP地址等;
d.数据发送单元按照头信息内的IP地址通过网络连接管理单元连接网络,把帧数据发送给监控机器。
所述鼠标捕捉模块包括鼠标数据捕获单元、数据比较单元、数据发送单元,内部工作流程包括:
a.鼠标数据捕获单元捕获鼠标的数据,包括一个时间点上的鼠标形状、鼠标状态、鼠标位置等信息;
b.数据比较单元把鼠标数据捕获单元获得的鼠标信息数据与上一次获得的数据相比较,如果有变化,则保留下来,如果没有变化,则舍弃;
c.数据发送单元用来通过发送参数为鼠标数据所在的内存地址等信息的消息,把经过比较后保留下来的鼠标数据发送给数据处理模块。
所述屏幕捕捉模块的屏捕外壳按照上层应用程序的需求所设置的参数包括:
a.关键帧间隔(KeyFrameInterval)
b.屏捕定时间隔(CaptureInterval)
c.是否捕捉屏幕变化区域(CaptuerChange)
d.屏捕通知列队长度(CaptuerQueueLength)
e.屏幕分区行数(GridRows)
f.屏幕分区列数(GridCols)
g.颜色位数(ColorBits)。
所述屏幕捕捉模块的接口函数包括:
a.开始屏捕函数(StartCapture),功能:开始进行屏捕;首先会通知捕获一幅关键帧作为开始帧,然后打开屏捕定时器,设置需要的消息钩子,进入自动屏捕状态。
b.停止屏捕函数(StopCapture),功能:停止屏捕;先关闭屏捕定时器,取消设置的钩子,再通知捕获一幅关键帧作为停止帧。
所述屏幕捕捉模块的事件包括:
屏捕事件(OnCapture),由截屏内核触发,把捕获到的图像传输出来。
与现有技术相比较,本发明提供的计算机屏幕捕获监控及记录方法可以用来捕捉连续的屏幕图像,产生的数据量非常少,非常适合于网络传输。在处理图像数据后,或把所捕获到的数据帧序列按顺序发送给监控机器进行远程监控,或存为文件,供日后播放。本发明采用模块结构,把不同的功能集成在不同的模块之内,便于日后程序升级和维护。本发明还提供了参数的设置,可在多处根据用户需求和用户环境来选择不同的监控方案,而且,如果日后有新的方案,也可以很快的加入到各个模块内,而不需要改动所有的代码,使得程序在升级、维护和集成方面更加灵活方便。此外,本发明还提供了接口供集成应用,可以将本发明的程序集成到需要屏捕监控功能的大型软件内,可靠性高,便于维护和升级。
附图说明 图1是本发明计算机屏幕捕获监控及记录方法屏幕捕捉模块内结构方框图;
图2是本发明所述方法屏幕捕捉模块的工作流程图;
图3是本发明所述方法各个模块之间连接方框示意图;
图4是本发明所述方法监控接口模块内结构方框图;
图5是本发明所述方法文件存储模块的工作流程图;
图6是本发明所述方法数据处理模块的工作流程图;
图7是本发明所述方法鼠标捕捉模块内结构方框图。
具体实施方式 下面结合附图及最佳实施例对本发明做进一步详尽的描述。
如图1、图2所示:一种计算机屏幕捕获监控最佳方法,基于包括硬盘、内存、主板、显示器、键盘、鼠标、操作系统以及上层应用程序11所构成的计算机系统,尤其是,在最佳实施方法中设置屏幕捕捉模块10,所述屏幕捕捉模块10的工作步骤包括:
a.上层应用程序11利用屏捕外壳12提供的接口15来设置屏捕参数;
b.上层应用程序11调用StartCapture函数通知屏捕外壳12开始屏捕;
c.屏捕外壳12通知内核13捕获一幅关键帧作为开始帧;
d.屏捕外壳12打开定时器14或设置需要的消息钩子;
e.屏捕外壳12按照上层应用程序11设置的参数来控制内核13进行屏捕,进入自动屏捕状态;
F.内核13在每次收到屏捕外壳12的屏捕通知后,按照屏捕外壳12传递进来的屏捕控制参数来来获取屏幕图像数据;
g.内核13触发OnCapture事件,把转换颜色位后的图像传递到屏幕捕捉模块10之外;
h.屏捕需要结束时,上层应用程序11调用StopCapture函数通知屏捕外壳12停止屏捕;
i.屏捕外壳12关闭定时器14或取消设置的钩子;
j.屏捕外壳12通知内核13捕获一幅关键帧作为停止帧。
步骤f所述的获取屏幕图像数据可以采用屏幕分区或是抓取屏幕重画区域的缩小抓图区域的方法,屏幕分区法的步骤包括:
a.将整个屏幕按行列分成若干小块;
b.将各个小块的图像逐个抓取;
c.把各个小块图像所在的起始坐标及图片大小也记录下来;
d.把各个小块图像及其位置等信息作为独立的图像数据传递下去。
抓取屏幕重画区域法的步骤包括:
a.首先将一幅图像作为当前图像,并暂存图元数据;
b.消息钩子捕捉到图像变化的消息时,发信息给屏捕外壳(12);
c.屏捕外壳(12)通知内核(13)通过钩子函数仅仅抓取重画区域的图像;
d.把重画区域的图像所在的位置及大小记录下来;
e.把重画区域的图像及其位置大小等数据传递给图像压缩模块;
f.在抓取若干幅图像之后,抓取一幅原始屏幕图像作为关键帧,以减少失真。
所述屏幕捕捉模块10还连接图像压缩模块30,该模块30内部工作流程包括:
a.接收来自屏幕捕捉模块10或者图像比较模块20发送过来的图像数据;
b.查询上层用户设置的压缩率、压缩格式等参数;
c.按照上述参数来压缩所获得的图像数据;
d.在经过压缩后的图像数据前增加一个头信息,头信息内包括压缩所用的压缩率和压缩格式、压缩后的文件大小等信息;
e.把经过处理后的图像数据发送给数据处理模块40做进一步的处理。
如图6所示:所述图像压缩模块30还连接数据处理模块40,所述数据处理模块40内部的工作流程包括:
a.数据处理模块接收到从图像压缩模块30或鼠标捕捉模块110传递过来的数据,判断是图像数据,还是鼠标数据;
b.在数据前加上一个帧头,帧头内包括用来标识是图像帧还是数据帧的数据类型标识符,用来规定当前帧播放时间的从开始到当前的时间差,以及其它数据信息;
c.不断的接收到数据,形成数据帧序列;
d.查询上层用户是否需要把所获得的屏幕图像数据存为文件;
e.如果需要存为文件,则把帧序列发送给文件存储模块120;
f.查询上层用户是否需要对被监控机器进行远程监控;
g.如果需要进行远程监控,则把帧序列发送给监控接口模块130;
所述屏幕捕捉模块10还连接图像比较模块20,该模块20内部工作流程包括:
a.接收到屏幕捕捉模块10发送过来的屏幕图像;
b.启动比较运算线程,把接收到的屏幕图像与同一个屏幕区域的前一幅图像进行比较,选出变化过的图元;
c.通过对像素进行异或运算把图像中没有发生变化的像素颜色变为0,即黑色,而变化了的像素则以差异值的形式保留下来,这样可以在后面的压缩处理中得到更高的压缩率;
d.由于在捕捉屏幕图像的时候采用了分屏捕捉的方式,捕捉到的许多区域图像根本就没有发生变化,这样在进行异或运算后得到的是一幅全黑色的图像,但在进行压缩时,这样的图像还会占一定的数据量,而实际上这幅图根本就没必要保留,这时就可以把这幅图丢弃;
e.把经过处理后的数据所在的内存地址作为消息的参数,然后通过消息事件交给图像压缩模块30。
如图5所示:所述数据处理模块40连接文件存储模块120、鼠标捕捉模块110和监控接口模块130,所述文件存储模块120内部的工作流程包括:
a.文件存储模块(120)接收来自数据处理模块40的数据帧信息,缓存进一个临时文件;
b.把包括数据帧存放在文件内的偏移值,帧大小等信息在内的数据帧信息组成一条帧信息记录,存入一个临时的列表内;
c.如果没有接收到屏捕结束命令,则继续上面的两步;
d.如果接收到上层应用程序的屏捕结束命令,则把记录帧信息的临时列表添加到临时文件的末尾;
e.压缩数据帧及帧信息记录组成的文件;
f.增加一个包括文件大小、帧记录在文件内的偏移量等信息的文件头到临时文件,形成所需的屏捕文件;
g.把形成的屏捕文件存入上层应用程序指定的地方。
如图4所示:所述监控接口模块130包括数据接收单元131、数据处理单元132、数据发送单元133、网络连接管理单元134,内部工作流程包括:
a.数据处理模块40把处理好的数据帧信息通过消息的形式发送给数据接收单元131;
b.数据接收单元131收到消息后,分析消息参数,获取数据帧信息;
c.数据处理单元132在原有的数据帧信息上添加头信息,包括监控机器200的IP地址等;
d.数据发送单元133按照头信息内的IP地址通过网络连接管理单元134连接网络190,把帧数据发送给监控机器200。
如图7所示:所述鼠标捕捉模块110包括鼠标数据捕获单元111、数据比较单元112、数据发送单元113,内部工作流程包括:
a.鼠标数据捕获单元111捕获鼠标的数据,包括一个时间点上的鼠标形状、鼠标状态、鼠标位置等信息;
b.数据比较单元112把鼠标数据捕获单元111获得的鼠标信息数据与上一次获得的数据相比较,如果有变化,则保留下来,如果没有变化,则舍弃;
c.数据发送单元113用来通过发送参数为鼠标数据所在的内存地址等信息的消息,把经过比较后保留下来的鼠标数据发送给数据处理模块40。
所述屏幕捕捉模块10的屏捕外壳12按照上层应用程序的需求所设置的参数包括:
a.关键帧间隔(KeyFrameInterval)
b.屏捕定时间隔(CaptureInterval)
c.是否捕捉屏幕变化区域(CaptuerChange)
d.屏捕通知列队长度(CaptuerQueueLength)
e.屏幕分区行数(GridRows)
f.屏幕分区列数(Grid Cols)
g.颜色位数(ColorBits)。
所述屏幕捕捉模块10的接口函数包括:
a.开始屏捕函数(StartCapture),功能:开始进行屏捕;首先会通知捕获一幅关键帧作为开始帧,然后打开屏捕定时器,设置需要的消息钩子,进入自动屏捕状态。
b.停止屏捕函数(StopCapture),功能:停止屏捕;先关闭屏捕定时器,取消设置的钩子,再通知捕获一幅关键帧作为停止帧。
所述屏幕捕捉模块10的事件包括:
屏捕事件(OnCapture),由截屏内核触发,把捕获到的图像传输出来。
本发明总的工作原理参照图1、图3描述:用户在运行本发明所述的屏捕程序之前先设置各个模块内部运行时所需要的参数,如通过屏幕捕捉模块10提供的接口15设置屏捕定时间隔:CaptureInterval,此参数为0时,是不使用定时方式,为其他数字时,是以秒为单位的时间间隔。屏幕分区行数:GridRows,最小值为1。屏幕分区列数:GridCols,最小值为1。通过图像比较模块20设置“是否进行图像比较”、“是否使用差异图像”等参数。
上层应用程序11发送需要开始屏捕的命令给各个模块,激活各个模块完成各种准备工作,如建立线程、创建对象、分配内存等工作,然后进入等待数据状态。
屏幕捕捉模块10中的控制外壳12在接收到开始屏捕的命令后,就根据用户设定的捕获方式,计算好截图的区域,指定屏捕图像的类型参数(是否关键帧),生成屏捕通知消息通知内核13执行抓图操作。
由于需要捕获的图像非常多,如果不进行处理,就会造成需要传递和存储的数据量非常大,使得屏捕技术不能实际应用,就需要采用各种方法尽可能减少数据量。缩小屏捕抓图区域是有效的减少数据量的办法,而且可以提高抓图的速度。本发明提供了二种可供选择的缩小抓图区域的办法:
1.分屏幕区域
屏幕分区方式是指把整个屏幕按行列分成多个小块,小块的大小形状通过设置分区的行数和列数决定,然后依次抓取每一小块分区的图像,从而得到整个屏幕的图像。虽然分区并不能减少整体上的数据量,但经过测试发现,在总的区域大小相同的情况下,分区抓图的整体速度明显比直接抓大区域要快得多,而且抓图造成的屏幕停顿感也小得多,在把整个屏幕分成40个区时,基本上感觉不到停顿的情况。由于分区取图的速度比较快,可以缩短抓图的时间间隔,提高屏捕图像的及时性,经过测试,在行列设置合适的情况下,至少可以达到25帧/秒的速度,而且对操作无任何影响。而且分区后进行图像比较会更方便,可以只保留发生了变化的区域,在传输、处理、存储和显示上效果都非常好。屏幕区域的划分方式由“屏幕分区行数”和“屏幕分区列数”两个参数设定。
由于最后需要得到的是一连串表示不同时间的屏幕变化的图像,所以在上层应用程序11通知开始抓屏后,就需要自动去捕获屏幕图像,这样就需要有一个抓图的时间控制方案,来触发屏捕以进行自动屏捕,如果用户设置采用此种方法,则触发屏捕的方式可以设置为定时器方式和鼠标、键盘动作触发方式,用户通过参数的设置可以设定采用两种中的任何一种,也可以两种同时使用。
2.屏幕重画区域
取屏幕重画区域不会产生多余的图像数据,非常及时和准确。当上层应用程序设定的抓图时间控制方案为根据屏幕重画消息抓图的方式时,屏捕外壳把根据重画区域信息构造的屏捕开始的消息发送给内核后,屏捕内核根据消息参数,包括需要捕获的图像在屏幕中所处的位置和图像大小等,来捕获屏幕重画区域。
如果采用此种方式来缩小屏幕区域,则触发屏捕的方式为根据屏幕重画消息抓图的方式。由于计算机屏幕每次变化的区域一般都比较小,所以根据Windows的屏幕重画消息取到屏幕变化的区域进行抓图,捕获的图像数据将小得多,而且能及时准确的反映屏幕的变化。重画消息是利用消息钩子捕捉到的,与鼠标、键盘触发方式的实现机制相同;当捕捉到屏幕重画消息时,钩子函数就会发送一个消息给屏捕模块外壳,外壳就可以根据消息中的重画区域信息构造屏捕通知消息,由内核抓取重画区域的图像。与鼠标、键盘触发方式相同,屏捕外壳在接收到开始屏捕的命令时设置钩子,在接收到停止屏捕的命令后取消钩子。
屏幕捕捉模块10中的内核13在收到抓图消息后,就开始启动线程进行抓图操作,并把捕获的图像存为BMP类型的对象,然后根据消息内的参数“颜色位”把图像转换为所需要的颜色位,再把图像发送到屏幕捕捉模块10之外,具体情况为:如果用户认为不需要进行图像比较处理,则把图像发送给图像压缩模块30直接进行压缩,而如果用户认为有必要,则把作为关键帧的图像发送给图像压缩模块30直接进行压缩,而把作为差异帧的图像发送给图像比较模块20进行图像比较处理。
如果用户认为有必要进行图像比较处理,则图像比较模块20也会被激活,等待图像数据。在接收到图像数据之后,把捕捉到的屏幕图像进行比较,选出变化过的图像,并通过异或运算把图像中没有发生变化的像素颜色清空,使所有没有变化的部分都转换成黑色,而变化的像素只占小部分,然后把处理后的图像数据通过消息参数的形式传递给图像压缩模块30。
图像压缩模块30在接收到屏幕捕捉模块10或图像比较模块20发送过来的图像数据后,就按照用户设置的压缩参数,如压缩率、压缩类型等,启动压缩线程来压缩图像,并把压缩后的图像数据通过消息参数的形式传递给数据处理模块40。
鼠标捕捉模块110按照上层应用程序11所设定的触发机制自动进行鼠标信息的捕捉,然后把获得的鼠标信息与上一次的信息做比较,如果没有改变,则舍弃,如果有改变,则发送到数据处理模块40。
数据处理模块40在接收到压缩后的图像数据后,把帧信息与图像数据整合在一起,形成一个帧,包括关键帧和差异帧,另外一方面,如果接收到鼠标捕捉模块110发过来的鼠标数据,则把鼠标数据与帧信息整合在一起,形成鼠标帧,然后根据时间顺序把这些帧发给监控接口模块130或文件存储模块120。
监控接口模块130在收到从数据处理模块40发过来的帧后,增加一个包含消息类型的消息头信息,然后查找内存中的监控机器信息记录表,按照表内所记录的监控机器的地址信息,通过网络通讯技术(如Socket通讯)把数据消息发送给监控机器200,监控机器200就可以按照数据形成的格式来解析出最终的图像数据,显示在监控机器200的屏幕上。
文件存储模块120在收到从数据处理模块40发过来的帧后,即把这些帧缓存进一个临时文件内,一直到接收到停止屏捕的命令,然后把这个临时文件加上文件头,文件头内包括一些此文件的信息,如文件内数据的大小等,再把整个文件按照用户设定的压缩格式和压缩率等参数把文件压缩,最后把压缩后的文件存入上层应用程序指定的路径。
监控接口模块130如果接收到远程监控机器200的鼠标、键盘等控制消息,则在监控接口模块130内的数据处理单元132内把控制数据从消息内解析出来,然后发给控制单元135,然后按照控制数据来控制被监控机器,完成远程监控的功能;
实践证明,本发明提供的计算机屏幕捕获监控及记录方法,可以捕捉到连续的屏幕图像,而且产生的数据量非常少,非常适合于网络传输。在处理图像数据后,或把所捕获到的数据帧序列按顺序发送给监控机器进行远程监控,或存为文件,供日后播放。本发明采用模块结构,把不同的功能集成在不同的模块之内,便于日后程序升级和维护。本发明还提供了参数的设置,可在多处根据用户需求和用户环境来选择不同的监控方案,而且,如果日后有新的方案,也可以很快的加入到各个模块内,而不需要改动所有的代码,使得程序在升级、维护和集成方面更加灵活方便。此外,本发明还提供了接口供集成应用,可以将本发明的程序集成到需要屏捕监控功能的大型软件内,可靠性高,便于维护和升级。
Claims (8)
1.一种计算机屏幕捕获监控及记录方法,基于包括硬盘、内存、主板、显示器、键盘、鼠标、操作系统以及上层应用程序(11)所构成的微机系统,其特征在于:
设置屏幕捕捉模块(10),所述屏幕捕捉模块(10)的工作步骤包括:
a.上层应用程序(11)利用屏捕外壳(12)提供的接口(15)来设置屏捕参数;
b.上层应用程序(11)调用StartCapture函数通知屏捕外壳(12)开始屏捕;
c.屏捕外壳(12)通知内核(13)捕获一幅关键帧作为开始帧;
d.屏捕外壳(12)打开定时器(14)或设置需要的消息钩子;
e.屏捕外壳(12)按照上层应用程序(11)设置的参数来控制内核(13)进行屏捕,进入自动屏捕状态;
F.内核(13)在每次收到屏捕外壳(12)的屏捕通知后,按照屏捕外壳(12)传递进来的屏捕控制参数来获取屏幕图像数据,此时
或采用屏幕分区的缩小抓图区方法,步骤包括:
①、将整个屏幕按行列分成若干小块;
②、将各个小块的图像逐个抓取;
③、把各个小块图像所在的起始坐标及图片大小也记录下来;
④、把各个小块图像及其位置信息作为独立的图像数据传递下去;
或采用抓取屏幕重画区的缩小抓图区方法,步骤包括:
①、首先将一幅图像作为当前图像,并暂存图元数据;
②、消息钩子捕捉到图像变化的消息时,发信息给屏捕外壳(12);
③、屏捕外壳(12)通知内核(13)通过钩子函数仅仅抓取重画区域的图像;
④、把重画区域的图像所在的位置及大小记录下来;
⑤、把重画区域的图像及其位置大小数据传递下去;
⑥、在抓取若干幅图像之后,抓取一幅原始屏幕图像作为关键帧,以减少失真;
g.内核(13)触发OnCapture事件,把图像传递到屏幕捕捉模块(10)之外;
h.屏捕需要结束时,上层应用程序(11)调用StopCapture函数通知屏捕外壳(12)停止屏捕;
i.屏捕外壳(12)关闭定时器(14)或取消设置的消息钩子;
j.屏捕外壳(12)通知内核(13)捕获一幅关键帧作为停止帧。
2.根据权利要求1所述的计算机屏幕捕获监控及记录方法,其特征在于:所述屏幕捕捉模块(10)还连接图像比较模块(20),该模块(20)内部工作流程包括:
a.接收到屏幕捕捉模块(10)发送过来的屏幕图像;
b.启动比较运算线程,把接收到的屏幕图像与同一个屏幕区域的前一幅图像进行比较,选出变化过的图元;
c.通过对像素进行异或运算把图像中没有发生变化的像素颜色变为0,即黑色,而变化了的像素则以差异值的形式保留下来,这样可以在后面的压缩处理中得到更高的压缩率;
d.由于在捕捉屏幕图像的时候采用了分屏捕捉的方式,捕捉到的许多区域图像根本就没有发生变化,这样在进行异或运算后得到的是一幅全黑色的图像,但在进行压缩时,这样的图像还会占一定的数据量,而实际上这幅图根本就没必要保留,这时就可以把这幅图丢弃;
e.把经过处理后的数据所在的内存地址作为消息的参数,然后通过消息事件传出。
3.据据权利要求2所述的计算机屏幕捕获监控及记录方法,其特征在于:屏幕捕捉模块(10)还连接图像压缩模块(30),该模块(30)内部工作流程包括:
a.接收来自屏幕捕捉模块(10)或者图像比较模块(20)发送过来的图像数据;
b.查询上层用户设置的压缩率、压缩格式参数;
c.按照上述参数来压缩所获得的图像数据;
d.在经过压缩后的图像数据前增加一个头信息,头信息内包括压缩所用的压缩率和压缩格式、压缩后的文件大小信息;
e.把经过处理后的图像数据发出。
4.根据权利要求1所述的计算机屏幕捕获监控及记录方法,其特征在于:所述方法还设置鼠标捕捉模块(110),该模块包括鼠标数据捕获单元(111)、数据比较单元(112)、数据发送单元(113),内部工作流程包括:
a.鼠标数据捕获单元(111)捕获鼠标的数据,包括一个时间点上的鼠标形状、鼠标状态、鼠标位置信息;
b.数据比较单元(112)把鼠标数据捕获单元(111)获得的鼠标信息数据与上一次获得的数据相比较,如果有变化,则保留下来,如果没有变化,则舍弃;
c.数据发送单元(113)用来通过发送参数为鼠标数据所在的内存地址信息的消息,把经过比较后保留下来的鼠标数据发出。
5.根据权利要求3所述的计算机屏幕捕获监控及记录方法,其特征在于:所述图像压缩模块(30)还连接数据处理模块(40),所述数据处理模块(40)内部的工作流程包括:
a.数据处理模块接收到从图像压缩模块(30)或鼠标捕捉模块(110)传递过来的数据,判断是图像数据,还是鼠标数据;
b.在数据前加上一个帧头,帧头内包括用来标识是图像帧还是数据帧的数据类型标识符,用来规定当前帧播放时间的从开始到当前的时间差,以及其它数据信息;
c.不断的接收到数据,形成数据帧序列;
d.查询上层用户是否需要把所获得的屏幕图像数据存为文件;
e.如果需要存为文件,则把帧序列发送出进行文件存储;
f.查询上层用户是否需要对被监控机器进行远程监控;
g.如果需要进行远程监控,则把帧序列发出进行监控。
6.根据权利要求5所述的计算机屏幕捕获监控及记录方法,其特征在于:所述数据处理模块(40)连接文件存储模块(120),所述文件存储模块(120)内部的工作流程包括:
a.文件存储模块(120)接收来自数据处理模块(40)的数据帧信息,缓存进一个临时文件;
b.把包括数据帧存放在文件内的偏移值,帧大小在内的数据帧信息组成一条帧信息记录,存入一个临时的列表内;
c.如果没有接收到屏捕结束命令,则继续上面的两步;
d.如果接收到上层应用程序的屏捕结束命令,则把记录帧信息的临时列表添加到临时文件的末尾;
e.压缩数据帧及帧信息记录组成的文件;
f.增加一个包括文件大小、帧记录在文件内的偏移量信息的文件头到临时文件,形成所需的屏捕文件;
g.把形成的屏捕文件存入上层应用程序指定的地方。
7.根据权利要求5所述的计算机屏幕捕获监控及记录方法,其特征在于:所述数据处理模块(40)连接监控接口模块(130),该模块包括数据接收单元(131)、数据处理单元(132)、数据发送单元(133)、网络连接管理单元(134),内部工作流程包括:
a.数据处理模块(40)把处理好的数据帧信息通过消息的形式发送给数据接收单元(131);
b.数据接收单元(131)收到消息后,分析消息参数,获取数据帧信息;
c.数据处理单元(132)在原有的数据帧信息上添加头信息,包括监控机器(200)的IP地址;
d.数据发送单元(133)按照头信息内的IP地址通过网络连接管理单元(134)连接网络(190),把帧数据发送给监控机器(200)。
8.根据权利要求1所述的计算机屏幕捕获监控及记录方法,其特征在于:步骤e所述屏幕捕捉模块(10)的屏捕外壳(12)按照上层应用程序的需求所设置的参数包括:
a.关键帧间隔KeyFrameInterval
b.屏捕定时间隔CaptureInterval
c.是否捕捉屏幕变化区域CaptuerChange
d.屏捕通知列队长度CaptuerQueueLength
e.屏幕分区行数GridRows
f.屏幕分区列数GridCols
g.颜色位数ColorBits
所述屏幕捕捉模块(10)的接口函数包括:
a.StartCapture,功能:开始进行屏捕;首先会通知捕获一幅关键帧作为开始帧,然后打开屏捕定时器,设置需要的消息钩子,进入自动屏捕状态;
b.StopCapture,功能:停止屏捕;先关闭屏捕定时器,取消设置的钩子,再通知捕获一幅关键帧作为停止帧;
所述屏幕捕捉模块(10)的事件包括:
OnCapture,由内核(13)触发,把捕获到的图像传输出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410051020 CN1290001C (zh) | 2004-08-05 | 2004-08-05 | 计算机屏幕捕获监控及记录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410051020 CN1290001C (zh) | 2004-08-05 | 2004-08-05 | 计算机屏幕捕获监控及记录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588302A CN1588302A (zh) | 2005-03-02 |
CN1290001C true CN1290001C (zh) | 2006-12-13 |
Family
ID=34602343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410051020 Expired - Fee Related CN1290001C (zh) | 2004-08-05 | 2004-08-05 | 计算机屏幕捕获监控及记录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1290001C (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456235C (zh) * | 2006-12-27 | 2009-01-28 | 腾讯科技(深圳)有限公司 | 一种在即时通信中屏幕截图的方法和系统 |
CN100592292C (zh) * | 2007-04-09 | 2010-02-24 | 腾讯科技(深圳)有限公司 | 一种网页截屏系统及其实现方法 |
CN101083751B (zh) * | 2007-06-22 | 2010-09-15 | 腾讯科技(深圳)有限公司 | 一种视频教学方法及装置 |
US8797335B2 (en) | 2009-06-05 | 2014-08-05 | International Business Machines Corporation | Platform agnostic screen capture tool |
US8751276B2 (en) * | 2010-07-26 | 2014-06-10 | Accenture Global Services Limited | Capturing and processing data generated in an ERP interim phase |
CN102164166B (zh) * | 2011-02-21 | 2014-10-15 | 北京奇虎科技有限公司 | 一种用于远程控制的分区传输方法和系统 |
CN102279739B (zh) * | 2011-06-10 | 2016-12-21 | 大连佳音科技有限公司 | 屏幕操作的记录方法和应用 |
CN103207826B (zh) * | 2012-01-11 | 2016-06-08 | 精品科技股份有限公司 | 操作历程的记录方法、以及信息安全的管理方法和系统 |
CN103246854B (zh) * | 2012-02-08 | 2018-02-16 | 精品科技股份有限公司 | 数据收集方法、信息安全管理方法及信息安全管理主机 |
CN102834805B (zh) * | 2012-03-14 | 2014-05-07 | 华为技术有限公司 | 屏幕录制方法、屏幕录制控制方法及装置 |
CN103577361B (zh) * | 2012-07-30 | 2018-01-23 | 联想(北京)有限公司 | 一种数据传输装置及电子设备 |
US20140095600A1 (en) * | 2012-09-28 | 2014-04-03 | Bradford H. Needham | Multiple-device screen capture |
CN103024510A (zh) * | 2012-12-17 | 2013-04-03 | 四川长虹电器股份有限公司 | 一种智能电视机图片捕获的方法 |
CN104123221A (zh) * | 2013-04-28 | 2014-10-29 | 腾讯科技(深圳)有限公司 | 响应时间的测试方法及装置 |
CN104468505B (zh) * | 2014-10-27 | 2017-11-21 | 北京神州绿盟信息安全科技股份有限公司 | 一种安全审计日志播放方法及装置 |
CN104503879B (zh) * | 2014-11-28 | 2018-07-24 | 深圳市赛格导航科技股份有限公司 | 监控电脑屏幕的方法及系统 |
US10956372B2 (en) | 2017-08-23 | 2021-03-23 | Bank Of America Corporation | Image capturing and processing for legacy format integration |
CN109947316A (zh) * | 2019-03-05 | 2019-06-28 | 国网辽宁省电力有限公司信息通信分公司 | 一种基于人机交互反馈原理的可视化处置方法 |
CN110177215A (zh) * | 2019-06-28 | 2019-08-27 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理器、拍摄装置和电子设备 |
CN110989950A (zh) * | 2019-11-15 | 2020-04-10 | 维沃移动通信有限公司 | 一种共享控制方法及电子设备 |
CN113810675B (zh) * | 2020-06-12 | 2024-03-12 | 北京小米移动软件有限公司 | 图像处理方法、装置、设备及存储介质 |
CN113163256B (zh) * | 2021-04-29 | 2024-01-23 | 深圳市艾酷通信软件有限公司 | 基于视频生成操作流程文件的方法及装置 |
-
2004
- 2004-08-05 CN CN 200410051020 patent/CN1290001C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1588302A (zh) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1290001C (zh) | 计算机屏幕捕获监控及记录方法 | |
CN1756307A (zh) | 图像发布系统及其控制方法 | |
CN1173553C (zh) | 成像设备 | |
CN1968391A (zh) | 摄影装置、显示控制方法、程序 | |
CN1607828A (zh) | 通信系统和方法 | |
CN1649292A (zh) | 设置路由器的定时器 | |
CN1744704A (zh) | 通信终端设备、电视电话控制方法和电视电话控制程序 | |
CN1578453A (zh) | 动图像信息的生成方法 | |
CN1747528A (zh) | 信息处理装置、信息处理方法及程序 | |
CN1812495A (zh) | 图像拾取设备、向导框显示控制方法及计算机程序 | |
CN1893556A (zh) | 成像设备、图像处理方法、图像处理程序、以及记录介质 | |
CN1622598A (zh) | 图像由多个图像处理设备处理的图像捕获装置和方法 | |
CN1992775A (zh) | 信息处理设备和信息处理方法 | |
CN1369813A (zh) | 数字照相机及其动作控制方法 | |
CN1906924A (zh) | 成像设备及成像辅助标记使用控制方法 | |
CN1960442A (zh) | 摄像设备和摄像方法 | |
CN1817044A (zh) | 电子照相机 | |
CN1929578A (zh) | 记录装置和方法以及程序 | |
CN1631017A (zh) | 发送装置、接收装置和发送/接收装置 | |
CN1472594A (zh) | 电子摄像机和电子摄像机的告知控制方法 | |
CN1297130C (zh) | 通信终端装置 | |
CN1184806C (zh) | 成像装置和记录/再现装置 | |
CN1645448A (zh) | 图象信息处理系统以及图象信息处理方法 | |
CN1146801C (zh) | 数据传送控制装置和电子装置 | |
CN101076134A (zh) | 一种用于cdma 1x无线视频监控的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061213 Termination date: 20150805 |
|
EXPY | Termination of patent right or utility model |