本发明涉及屏幕录制技术,尤其涉及一种显示界面监控方法及装置。
背景技术:
随着计算机科学技术的不断发展,应用软件在航天型号系统中的重要性日益突出。大量的硬件设备因不能满足型号定制化的需求,故而被应用软件所取代。为了应对可能发生的软件故障,当应用软件启动后,研发人员需要时刻关注应用软件的运行状态。由于研发人员无法每时每刻地在试验现场监控应用软件的运行状态,因而需利用计算机对应用软件的显示界面进行自动监控。
然而,现有的显示界面监控方法需捕捉并保存应用软件在每个运行时刻的显示界面,若应用软件的某一显示界面在一段时间内未发生任何变化,则该显示界面将会被多次重复保存,进而使得存储得到的最终图像文件太大;另外,现有显示界面监控方法无法监测出未在应用软件界面上体现出来的键鼠事件,从而使得显示界面监控的完整性存在不足。
技术实现要素:
本发明提供一种显示界面监控方法及装置,以实现减小存储得到的最终图像文件的大小;提高显示界面监控的完整性的目的。
本发明目的通过以下技术方案予以实现:
第一方面,本发明提供了一种显示界面监控方法,包括:
寻找目标应用程序的显示界面未变化时刻;
在每个所述显示界面未变化时刻,停止对所述目标应用程序的显示界面的存储,并捕捉外设输入事件,所述外设输入事件为键盘事件或鼠标事件;
根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
进一步地,所述寻找目标应用程序的显示界面未变化时刻,包括:
当所述目标应用程序处于运行状态时,自所述目标应用程序的启动时刻起,间隔预设时长,捕捉所述目标应用程序的显示界面和所述显示界面对应的时刻值,并将所述时刻值作为捕捉时刻,所述启动时刻为第一个所述捕捉时刻且所述捕捉时刻的序号自所述启动时刻起依次递增;
存储所述目标应用程序在所述启动时刻的显示界面;
从第二个所述捕捉时刻开始,将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较;
当所述当前捕捉时刻对应的显示界面与所述前一捕捉时刻对应的显示界面未存在差异时,将所述当前捕捉时刻作为所述目标应用程序的显示界面未变化时刻。
进一步地,所述将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较,包括:
获取当前捕捉时刻对应的显示界面的像素点rgb值,以作为第一rgb值;
获取相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面的像素点rgb值,以作为第二rgb值;
将所述第一rgb值逐一与对应位置处的所述第二rgb值进行比较。
进一步地,所述预设时长为50ms~1000ms。
进一步地,根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻,包括:
当捕捉到外设输入事件时,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
第二方面,本发明还提供了一种显示界面监控装置,该装置包括:
查寻模块,用于寻找目标应用程序的显示界面未变化时刻;
控制模块,用于在每个所述显示界面未变化时刻,停止对所述目标应用程序的显示界面的存储,并捕捉外设输入事件,所述外设输入事件为键盘事件或鼠标事件;
记录模块,用于根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
进一步地,所述查寻模块包括:
捕捉单元,用于当所述目标应用程序处于运行状态时,自所述目标应用程序的启动时刻起,间隔预设时长,捕捉所述目标应用程序的显示界面和所述显示界面对应的时刻值,并将所述时刻值作为捕捉时刻,所述启动时刻为第一个所述捕捉时刻且所述捕捉时刻的序号自所述启动时刻起依次递增;
存储单元,用于存储所述目标应用程序在所述启动时刻的显示界面;
比较单元,用于从第二个所述捕捉时刻开始,将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较;
寻找单元,用于当所述当前捕捉时刻对应的显示界面与所述前一捕捉时刻对应的显示界面未存在差异时,将所述当前捕捉时刻作为所述目标应用程序的显示界面未变化时刻。
进一步地,所述比较单元包括:
第一获取子单元,用于获取当前捕捉时刻对应的显示界面的像素点rgb值,以作为第一rgb值;
第二获取子单元,用于获取相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面的像素点rgb值,以作为第二rgb值;
对比子单元,用于将所述第一rgb值逐一与对应位置处的所述第二rgb值进行比较。
进一步地,所述预设时长为50ms~1000ms。
进一步地,所述记录模块包括:
保存单元,用于当捕捉到外设输入事件时,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
本发明与现有技术相比具有如下有益效果:
(1)、本发明通过寻找目标应用程序的显示界面未变化时刻,在每个显示界面未变化时刻,停止对目标应用程序的显示界面的存储,能够避免同一显示界面被多次重复保存,从而减小了最终图像文件的大小。
(2)、本发明通过在每个显示界面未变化时刻,捕捉外设输入事件,根据捕捉结果,记录外设输入事件及其对应的时刻,能够监测出未在应用软件界面上体现出来的键鼠事件,从而提高了显示界面监控的完整性。
(3)、由于某些未在应用软件界面上体现出来的键鼠事件可能会导致应用软件出现运行故障,而本发明能够监测出未在应用软件界面上体现出来的键鼠事件,这对于诊断和排除因上述键鼠事件导致的软件故障具有重要的意义。
附图说明
图1是本发明实施例一中的一种显示界面监控方法的流程图;
图2是本发明实施例二中的一种显示界面监控装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种显示界面监控方法的流程图,本实施例可适用于需要对应用软件的显示界面进行监控的情况,该方法可以由显示界面监控装置来执行,其中该装置可以由软件和/或硬件实现。参考图1,本实施例提供的显示界面监控方法具体可以包括如下步骤:
s110、寻找目标应用程序的显示界面未变化时刻。
可选的,所述寻找目标应用程序的显示界面未变化时刻,包括:
当所述目标应用程序处于运行状态时,自所述目标应用程序的启动时刻起,间隔预设时长,捕捉所述目标应用程序的显示界面和所述显示界面对应的时刻值,并将所述时刻值作为捕捉时刻,所述启动时刻为第一个所述捕捉时刻且所述捕捉时刻的序号自所述启动时刻起依次递增。
其中,所述预设时长为50ms~1000ms。本实施例中,所述预设时长为50ms。当目标应用程序处于运行状态时,自目标应用程序的启动时刻起,间隔50ms,捕捉目标应用程序的显示界面及其对应的时刻。所述启动时刻为第一个捕捉时刻且所述捕捉时刻的序号自所述启动时刻起依次递增,即50ms时刻为第二个捕捉时刻,100ms时刻为第三个捕捉时刻,以此类推。
存储所述目标应用程序在所述启动时刻的显示界面。
其中,当捕捉到目标应用程序在启动时刻的显示界面后,将该显示界面进行存储。
从第二个所述捕捉时刻开始,将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较。
其中,在本实施例中,所述第二个捕捉时刻即为50ms时刻。从50ms时刻开始,将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较。例如,若当前捕捉时刻为50ms时刻,则相邻于所述当前捕捉时刻的前一捕捉时刻即为所述启动时刻;若当前捕捉时刻为100ms时刻,则相邻于所述当前捕捉时刻的前一捕捉时刻即为50ms时刻;若当前捕捉时刻为200ms时刻,则相邻于所述当前捕捉时刻的前一捕捉时刻即为150ms时刻。本实施例中,将50ms时刻对应的显示界面与所述启动时刻对应的显示界面进行比较;将100ms时刻对应的显示界面与50ms时刻对应的显示界面进行比较;将150ms时刻对应的显示界面与100ms时刻对应的显示界面进行比较,如此循环,直至每个所述当前捕捉时刻对应的显示界面均与所述前一捕捉时刻对应的显示界面进行了比较。
可选的,所述将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较,包括:
获取当前捕捉时刻对应的显示界面的像素点rgb值,以作为第一rgb值;
获取相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面的像素点rgb值,以作为第二rgb值;
将所述第一rgb值逐一与对应位置处的所述第二rgb值进行比较。
例如,若当前捕捉时刻为150ms时刻,则获取150ms时刻对应的显示界面的像素点rgb值,以作为第一rgb值;获取100ms时刻对应的显示界面的像素点rgb值,以作为第二rgb值;将所述第一rgb值逐一与对应位置处的所述第二rgb值进行比较。具体的,将两个显示界面进行比较,即对两个显示界面在所有对应位置处的像素点的rgb值进行比较。
当所述当前捕捉时刻对应的显示界面与所述前一捕捉时刻对应的显示界面未存在差异时,将所述当前捕捉时刻作为所述目标应用程序的显示界面未变化时刻。
其中,所述当前捕捉时刻对应的显示界面与所述前一捕捉时刻对应的显示界面未存在差异,即两个显示界面对应位置处的像素点的rgb值完全相同。例如,若当前捕捉时刻为150ms时刻,则当150ms时刻对应的显示界面与100ms时刻对应的显示界面未存在差异时,将150ms时刻作为所述显示界面未变化时刻。若当前捕捉时刻为350ms时刻,则当350ms时刻对应的显示界面与300ms时刻对应的显示界面未存在差异时,将350ms时刻作为所述显示界面未变化时刻。
s120、在每个所述显示界面未变化时刻,停止对所述目标应用程序的显示界面的存储,并捕捉外设输入事件,所述外设输入事件为键盘事件或鼠标事件。
具体的,在每个显示界面未变化时刻,不保存目标应用程序的显示界面,并且捕捉外设输入事件,所述外设输入事件为键盘事件或鼠标事件。
s130、根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
可选的,根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻,包括:
当捕捉到外设输入事件时,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
具体的,当捕捉到键盘事件时,记录该键盘事件及其对应的时刻;或者,当捕捉到鼠标事件时,记录该鼠标事件及其对应的时刻。
本实施例的技术方案通过寻找目标应用程序的显示界面未变化时刻,在每个显示界面未变化时刻,停止对目标应用程序的显示界面的存储,能够避免同一显示界面被多次重复保存,从而减小了最终图像文件的大小,例如,录制一次600秒的试验,现有技术需要上百兆的存储空间,而利用本发明只需要10m的存储空间;通过在每个显示界面未变化时刻,捕捉外设输入事件,根据捕捉结果,记录外设输入事件及其对应的时刻,能够监测出未在应用软件界面上体现出来的键鼠事件,从而提高了显示界面监控的完整性;由于某些未在应用软件界面上体现出来的键鼠事件可能会导致应用软件出现运行故障,而本发明能够监测出未在应用软件界面上体现出来的键鼠事件,这对于诊断和排除因上述键鼠事件导致的软件故障具有重要的意义。
实施例二
图2是本发明实施例二中的一种显示界面监控装置的结构图,本实施例可适用于需要对应用软件的显示界面进行监控的情况。参考图2,本实施例提供的显示界面监控装置具体可以如下:
查寻模块210,用于寻找目标应用程序的显示界面未变化时刻;
控制模块220,用于在每个所述显示界面未变化时刻,停止对所述目标应用程序的显示界面的存储,并捕捉外设输入事件,所述外设输入事件为键盘事件或鼠标事件;
记录模块230,用于根据所述捕捉结果,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
可选的,所述查寻模块包括:
捕捉单元,用于当所述目标应用程序处于运行状态时,自所述目标应用程序的启动时刻起,间隔预设时长,捕捉所述目标应用程序的显示界面和所述显示界面对应的时刻值,并将所述时刻值作为捕捉时刻,所述启动时刻为第一个所述捕捉时刻且所述捕捉时刻的序号自所述启动时刻起依次递增;
存储单元,用于存储所述目标应用程序在所述启动时刻的显示界面;
比较单元,用于从第二个所述捕捉时刻开始,将当前捕捉时刻对应的显示界面与相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面进行比较;
寻找单元,用于当所述当前捕捉时刻对应的显示界面与所述前一捕捉时刻对应的显示界面未存在差异时,将所述当前捕捉时刻作为所述目标应用程序的显示界面未变化时刻。
可选的,所述比较单元包括:
第一获取子单元,用于获取当前捕捉时刻对应的显示界面的像素点rgb值,以作为第一rgb值;
第二获取子单元,用于获取相邻于所述当前捕捉时刻的前一捕捉时刻对应的显示界面的像素点rgb值,以作为第二rgb值;
对比子单元,用于将所述第一rgb值逐一与对应位置处的所述第二rgb值进行比较。
可选的,所述预设时长为50ms~1000ms。
可选的,所述记录模块包括:
保存单元,用于当捕捉到外设输入事件时,记录所述外设输入事件和所述外设输入事件对应的所述显示界面未变化时刻。
本实施例提供的显示界面监控装置,与本发明任意实施例所提供的显示界面监控方法属于同一发明构思,可执行本发明任意实施例所提供的显示界面监控方法,具备执行显示界面监控方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的显示界面监控方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。