一种监控电脑应用使用情况的方法与流程

文档序号:11654140阅读:331来源:国知局

本发明涉及信息安全技术领域,特别涉及一种监控电脑应用使用情况的方法。



背景技术:

在高速发展的信息时代,人们的大部分工作学习都离不开电脑。在企业上班族中,由于工作中都会接触到电脑,并且企业局域网的电脑通常也都接入了互联网,这一方面方便了员工的工作,另一方面也使得员工可以轻松进行网络冲浪,进行与工作无关的上网行为,例如上网购物、在线看视频、炒股、玩游戏以及qq聊天等等,严重干扰了企业局域网的正常运转以及其他员工的正常工作,为此公司管理者需要找到远程查看管理员工的电脑桌面情况。

目前也有很多员工监控管理软件,但大多都是针对当前用户所获取焦点的窗口进行监控,如果用户同时在看电影,又在做工作相关的事就监控不了其做的工作无关的事了。



技术实现要素:

本发明针对现有技术的缺陷,提供了,能有效的解决上述现有技术存在的问题。

一种监控电脑应用使用情况的方法,包括以下步骤:

s1:准备应用程序分类数据库在;

s2:抓取用户打开的窗口信息;

s3:根据屏幕屏占比,窗口获取焦点情况,及应用程序操作类别计算用户所使用的目标程序;

s4:获取应用程序使用时间生成可视化报表。

作为优选,所述s1具体步骤如下:

s11:找到电脑软件下载网站;

s12:根据分类需求编写网络数据抓取脚本;

s13:运行脚本抓取分类数据并导入数据库;

s14:收集各台电脑中安装的应用软件名称;

s15:在数据库中查找是否存在对该软件的分类,若存在则继续查找下一个应用程序,若不存在则进入步骤三;

s16:将应用程序存储到未分类的数据表中进行人工分类;

s17:分类结果出来后,为各个分类设置应用程序操作类别,一、打开程序不需要用户操作;二、打开程序需要用户操作。

作为优选,所述s2具体步骤如下:

s21:根据api获取用户桌面的句柄;

s22:获取桌面下的所有子窗口及用户打开的所有窗口;

s23:获取每个窗口的属性值,包括窗口的进程id,窗口所在位置;

s24:根据进程id获取窗口所属应用程序,并获取应用程序路径及名称、版本信息。

作为优选,所述s3的具体步骤如下:

s31:利用windowsapi获取所有应用程序窗口列表,默认为从上层窗口往下排列;

s32:电脑屏幕大小获取;

s33:计算顶层窗口屏占比;

s34:计算下一层窗口屏占比;

s35:分析用户使用目标应用程序,首先判断所有打开的应用是否包含不需要用户操作的应用,若包含则判断是否获取了焦点,获取焦点的即为目标应用程序,否则判断该类应用中窗口屏幕占用率或显示率大的为目标应用程序;如果都为需要用户操作的应用,则获取焦点的即为目标应用程序。

作为优选,所述s33的具体步骤如下:

s331:判断应用窗口左边位置是否小于0,如果小于0则将显示的左边位置设为0,否则不变;

s332:判断应用窗口顶部位置是否小于0,如果小于0则将显示的顶部位置设为0,否则不变;

s333:判断应用窗口右边位置是否大于屏幕宽度,如果大于屏幕宽度则将显示的右边位置设为屏幕的宽,否则不变;

s334:判断应用窗口底部位置是否大于屏幕高度,如果大于屏幕高度则将显示的底部位置设为屏幕的高,否则不变;

s335:根据多边形面积计算公式获取屏幕面积大小、顶层窗口总大小和顶层窗口显示大小;

s336:屏占比计算公式为:屏占比=窗口显示面积/屏幕面积,显示比例计算公式为:显示比=窗口显示面积/窗口总面积;

s337:将该层窗口存入到一个缓存列表list中。

作为优选,所述s34的具体步骤如下:

s341:排除屏幕以外部分,依次执行步骤s331、s332、s333、s334;

s342:排除被其上面窗口遮挡部分;

s343:计算显示的面积及所有显示面积相加;

s344:执行步骤s336,s337直到所有窗口屏占比计算完为止。

作为优选,所示s342的具体步骤如下:

s3421:将应用程序屏幕位置信息按顺时针转换为路径点数据path1;

s3422:从list列表中取出一个窗口路径path2与当前窗口路径做比较,计算出当前窗口没被遮挡的部分;

s34221:从path1第一个点开始,判断是否path2遮挡,如果被遮挡就继续判断下一个点直到找到不被遮挡的点或到最后一个点为止,将这个点作为显示面积的路径path的起始点,记录该点在path1中的下标index。如果到最后一个点还是被遮挡的,说明该层窗口被完全遮挡,显示面积为0;

s34222:从path中最后一个点开始,判断该点与在path1中第index+1个点组成的线段是否与path2有交点,若有交点则将交点记录在path中,并记录与path2中相交的线段的结束点下标index,执行s3443;若没有交点则将path1中第index+1个点记录在path中,并将index加1,继续执行s34222:,当遇到下一个记入path的点与path的第一个点相同时,执行步骤s3423;

s34223:从path中最后一个点开始,判断该点与在path2中第index-1个点组成的线段是否与path1有交点,若有交点则将交点记录在path中,并记录与path1中相交的线段的结束点下标index,执行s34222。若没有交点则将path2中第index-1个点记录在path中,并将index减1,继续执行s34223,当遇到下一个记入path的点与path的第一个点相同时,执行步骤s3423;

s3423:判断path1中是否还有没有被path2遮挡但path中不存在,若有则以重新创建一个新的显示面积的路径n_path,并将该点记入n_path中,执行步骤s34222;若不存在则执行步骤s3422,直到list中取完为止。

作为优选,所述s4具体步骤如下:

s41:每隔一定时间执行s2、s3所有步骤,获取用户使用的目标应用程序;

s42:比对上一次记录的应用程序与当前记录应用程序是否为同一程序,若是则不做操作,如不是则将当前时间记为上一次应用使用结束时间及这次应用使用的开始时间;

s43:根据数据库分类,计算出各个分类的总时间、无效时间、有效时间;

s44:根据上一步获取的数据生成分析图。

与现有技术相比本发明的优点在于:全面分类应用数据库;准确抓取用户打开的窗口信息;准确获取用户使用的目标程序,能够在同时打开多个窗口不能精确定位员工正在使用应用的问题;加强工作期间企业对员工的管理大大减少了企业管理者管理成本。

附图说明

图1为本发明实施例生成的员工使用程序分析图。

具体实施方式

为使本发明的目的:技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。

一种监控电脑应用使用情况的方法,包括以下步骤:

s1:准备应用程序分类数据库在;

s2:抓取用户打开的窗口信息;

s3:根据屏幕屏占比,窗口获取焦点情况,及应用程序操作类别计算用户所使用的目标程序;

s4:获取应用程序使用时间生成可视化报表。

所述s1具体步骤如下:

s11:在网络上找到电脑软件下载网站;

s12:根据分类需求编写网络数据抓取脚本;

s13:运行脚本抓取数据并导入数据库;

s14:收集各台电脑中安装的应用软件名称;

s15:在数据库中查找是否存在对该软件的分类,若存在则继续查找下一个应用程序,若不存在则进入步骤三;

s16:将应用程序存储到未分类的数据表中进行人工分类。

s17:分类结果出来后,为各个分类设置应用程序操作类别,一、打开程序不需要用户操作,比如:游戏、视频、音乐、新闻等;二、打开程序需要用户操作,比如:开发、设计、办公工具等。

所述s2具体步骤如下:

s21:根据api获取用户桌面的句柄;

s22:获取桌面下的所有子窗口及用户打开的所有窗口;

s23:获取每个窗口的属性值,包括窗口的进程id,窗口所在位置;

s24:根据进程id获取窗口所属应用程序,并获取应用程序路径及名称、版本信息。

所述s3的具体步骤如下:

s31:利用windowsapi获取所有应用程序窗口列表,默认为从上层窗口往下排列;

s32:电脑屏幕大小获取;

s33:计算顶层窗口屏占比;

由于顶层窗口无其他任何窗口遮挡,故只需除去超出屏幕外的部分,主要步骤如下:

s331:判断应用窗口左边位置是否小于0,如果小于0则将显示的左边位置设为0,否则不变;

s332:判断应用窗口顶部位置是否小于0,如果小于0则将显示的顶部位置设为0,否则不变;

s333:判断应用窗口右边位置是否大于屏幕宽度,如果大于屏幕宽度则将显示的右边位置设为屏幕的宽,否则不变;

s334:判断应用窗口底部位置是否大于屏幕高度,如果大于屏幕高度则将显示的底部位置设为屏幕的高,否则不变;

s335:根据多边形面积计算公式获取屏幕面积大小、顶层窗口总大小和顶层窗口显示大小;

s336:屏占比计算公式为:屏占比=窗口显示面积/屏幕面积,显示比例计算公式为:显示比=窗口显示面积/窗口总面积;

s337:将该层窗口存入到一个缓存列表list中。

s34:计算下一层窗口屏占比;

下一层除超出屏幕外的部分外还可能被其上面的窗口遮挡,其计算步骤如下:

s341:排除屏幕以外部分,依次执行步骤s331、s332、s333、s334;

s342:排除被其上面窗口遮挡部分;

s3421:将应用程序屏幕位置信息按顺时针转换为路径点数据path1;

s3422:从list列表中取出一个窗口路径path2与当前窗口路径做比较,计算出当前窗口没被遮挡的部分;

s34221:从path1第一个点开始,判断是否path2遮挡,如果被遮挡就继续判断下一个点直到找到不被遮挡的点或到最后一个点为止,将这个点作为显示面积的路径path的起始点,记录该点在path1中的下标index。如果到最后一个点还是被遮挡的,说明该层窗口被完全遮挡,显示面积为0;

s34222:从path中最后一个点开始,判断该点与在path1中第(index+1)个点组成的线段是否与path2有交点,若有交点则将交点记录在path中,并记录与path2中相交的线段的结束点下标index,执行s3443;若没有交点则将path1中第(index+1)个点记录在path中,并将index加1,继续执行s34222:,当遇到下一个记入path的点与path的第一个点相同时,执行步骤s3423;

s34223:从path中最后一个点开始,判断该点与在path2中第(index-1)个点组成的线段是否与path1有交点,若有交点则将交点记录在path中,并记录与path1中相交的线段的结束点下标index,执行s34222。若没有交点则将path2中第(index-1)个点记录在path中,并将index减1,继续执行s34223,当遇到下一个记入path的点与path的第一个点相同时,执行步骤s3423;

s3423:判断path1中是否还有没有被path2遮挡但path中不存在,若有则以重新创建一个新的显示面积的路径n_path,并将该点记入n_path中,执行步骤s34222;若不存在则执行步骤s3422:,直到list中取完为止。

s343:计算显示的面积及所有显示面积相加;

s344:执行步骤s336,s337直到所有窗口屏占比计算完为止;

s35:分析用户使用目标应用程序,首先判断所有打开的应用是否包含不需要用户操作的应用,若包含则判断是否获取了焦点,获取焦点的即为目标应用程序,否则判断该类应用中窗口屏幕占用率或显示率大的为目标应用程序;如果都为需要用户操作的应用,则获取焦点的即为目标应用程序。

所述s4具体步骤如下:

s41:每隔一定时间(如2秒)执行s2、s3所有步骤,获取用户使用的目标应用程序;

s42:比对上一次记录的应用程序与当前记录应用程序是否为同一程序,若是则不做操作,如不是则将当前时间记为上一次应用使用结束时间及这次应用使用的开始时间;

s43:根据数据库分类,计算出各个分类的总时间、无效时间(使用游戏,音乐、视频、看新闻、其他应用和未使用任何应用的时间)、有效时间(使用开发、设置等应用的时间)(注:有效、无效标准以程序员为例);

s44:根据上一步获取的数据生成分析图,如图1所示:该图为某一员工在上班和下班时间内使用程序的情况,其中有效时间为使用与工作相关的应用时间。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1