一种获取应用程序使用频率的方法和装置的制作方法

文档序号:6434557阅读:165来源:国知局
专利名称:一种获取应用程序使用频率的方法和装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种获取应用程序使用频率的方法和装置。
背景技术
随着计算机技术的发展,用户可以在计算机系统中安装各式各样的应用程序来满 足其不同的使用需求,对于各种应用程序,获取其使用的频率,根据各个应用程序的使用频 率来优化系统。
目前,Windows自带的安装卸载列表中对应用程序使用频率的判断是基于非常简 单的算法进行的,判断的结果不精确,很难获得用户在计算机上使用应用程序的真实频率, 因此无法进一步地为用户提供系统优化方案。发明内容
本发明实施例所要解决的技术问题是提供一种获取应用程序使用频率的技术, 可以准确统计计算机系统中安装的应用程序的使用频率,以便真实的反应用户使用应用程 序的状况,以为用户提供系统优化方案。
为实现本发明的目的,本发明实施例是这种实现的
—种获取应用程序使用频率的方法,包括
根据系统注册信息表,获取应用程序的安装路径;
调用应用程序编程接口,监控所述应用程序的运行;
记录所述应用程序的最后一次启动时间和安装路径;
以安装路径为索弓I,获取应用程序的最后一次启动时间;
比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
相应地,本发明实施例还提供了一种获取应用程序使用频率的装置,包括
路径获取模块,用于根据系统注册信息表,获取应用程序的安装路径;
程序监控模块,用于调用应用程序编程接口,监控所述应用程序的运行;
信息记录模块,用于记录所述应用程序的最后一次启动时间和安装路径;
时间获取模块,用于以安装路径为索引,在所述信息记录模块中获取应用程序的 最后一次启动时间;
频率计算模块,用于比较所述最后一次启动时间和当前时间,确定所述应用程序 的使用频率。
实施本发明,可以达到以下有益效果
通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程 序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化 计算机系统提供了基础。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
图1是本发明提供的一种获取应用程序使用频率的方法实施例一的流程示意图2是本发明提供的一种获取应用程序使用频率的方法实施例一中获取应用程 序的安装路径的一种不意图3是本发明提供的一种获取应用程序使用频率的方法实施例一中获取应用程 序的安装路径的又一不意图4是本发明提供的一种获取应用程序使用频率的方法实施例一中获取应用程 序的安装路径的又一不意图5是本发明提供的一种获取应用程序使用频率的装置实施例二的组成示意图6是本发明提供的一种获取应用程序使用频率的装置实施例三的组成示意图7是本发明提供的一种获取应用程序使用频率的装置实施例一的组成示意图8是本发明提供的一种获取应用程序使用频率的装置实施例二的组成示意图9是本发明提供的一种获取应用程序使用频率的装置实施例三的组成示意图10是本发明提供的一种获取应用程序使用频率的装置实施例四的组成示意 图。
具体实施方式
本发明提供一种获取应用程序使用频率的技术,可以准确统计计算机系统中安装 的应用程序的使用频率,以便真实的反应用户使用应用程序的状况,以为用户提供系统优化方案。
为了清楚的描述本发明实施例,首先对本实施例中涉及的相关技术术语做一些介 绍
API (Application Programming Interface,应用程序编程接口)是一些预先定义 的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而 又无需访问源码,或理解内部工作机制的细节。
进程进程是操作系统结构的基础;是一个正在执行的应用程序;计算机中正在 运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显 示,一个当前状态和一组相关的系统资源所描述的活动单元。
Hook(挂钩或钩子)是Windows中提供的一种用以替换DOS下“中断”的系统机 制。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序 就会受到系统的通知,这时应用程序就能在第一时间对该事件做出响应。
应用程序又称“应用软件”,是为了某种特定的用途而被开发的软件。它可以是一 个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的 集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。
参见图1,为本发明提供的一种获取应用程序使用频率的方法实施例一的流程示意图。
本实施例提供的方法,包括
步骤100,根据系统注册信息表,获取应用程序的安装路径;
步骤101,调用应用程序编程接口,监控所述应用程序的运行;
步骤102,记录所述应用程序的最后一次启动时间和安装路径;
步骤103,以安装路径为索引,获取应用程序的最后一次启动时间和当前时间;
步骤104,比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
实施本发明实施例,由于通过系统注册信息表准确获取了应用程序的安装路径, 然后再基于该安装路径监控应用程序的启动情况,根据记录的最后一次启动时间来判断应用程序被使用的频率。本实施例提供的获取应用程序使用频率的方法真实有效,客观准确, 可以使用户清楚地掌握其计算机系统中安装的应用程序的使用情况,用户还可以根据该获取的使用频率进一步对计算机系统进行优化。
上述根据系统注册信息表 ,获取应用程序的安装路径的实现过程,具体包括以下几种方式
第一种从系统注册信息表中键值为安装路径InstallLocation的表项中获取应用程序的安装路径。
具体实现中,通过调用程序,从注册信息表SOFTWARE\\Microsoft\\Windo ws\\ Current Version\\Uninstall下,键值为InstallLocation的表项中获取应用程序的安装路径。
举例来讲,参见图2,图2为系统信息注册表中,SOFTWAREWMicrosoftW ffindows\\Current Version\\Uninstall 下,关于应用程序 “Autodesk Express View er” 所有表项的示意图,在该表项中,寻找键值为“ InstallLocation”的表项,可见其安装路径为 “C:\Program Files\Autodesk\Autodesk Express Viewer,,。
第二种从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径。
具体实现中,有一些应用程序在注册信息表中,没有键值为“InstallLocatio η” 的表项。因此,采取第二种方式,通过调用程序,从注册信息表SOFTWAREWMicrosoftW ffindows\\Current VersionWUninstall 下读取键值为 UnstallString 的表项后,去掉 exe 文件名,获取应用程序的安装路径。
举例来讲,参见图3,图3为系统信息注册表中,SOFTWAREWMicrosoftW ffindows\\Current Version\\Uninstall 下,关于应用程序“Adobe Flash Player Ac tivex”所有表项的示意图,在该表项中,没有键值为“InstallLocation”的表项,因此寻找键值为 “UnstallString” 的表项,可见其表不为 “C: \WIND0WS\system32\Macromed\Flash\ FlashUti110w_ActiveX. exe-matntain activex”。去掉 exe 文件名,获取安装路径为 C:\WIND0WS\system32\Macromed\Flash\”。
第三种将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径。
具体实现过程中,有一些应用程序在注册信息表中,既没有键值为“Install Location”的表项,也没有键值为“UnstallString”的表项,因此需要进一步枚举用户桌面、 开始、启动快捷方式等位置的应用程序的快捷方式,将应用程序的快捷方式的名称与注册 表信息中的软件名称进行模糊匹配,在匹配成功的基础上,将快捷方式的指向路径作为应 用程序的安装路径。
举例来讲,假设一个计算机系统中,安装了 “腾讯TM2009”、“CHATM2010”、“暴风影 音”等等应用程序,这些应用程序的快捷方式分别位于桌面,开始、启动快捷方式等位置。本 步骤中,将枚举这些快捷方式,然后将所有快捷方式的名称与注册表信息中的应用程序的 名称进行匹配,假设快捷方式的名称为“CHATM2010”,其与注册信息表中的“CHATM商标查 询软件”进行模糊匹配时,能够匹配成功,则获取该快捷方式的指向路径,详见图4,该快捷 方式的指向路径为“目标(T)C:\Rabbit\chatm\exe\Quety_net. exe”,将该指向路径作为应 用程序“CHATM2010”的安装路径。
第四种,将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的 应用程序的名称进行模糊匹配,匹配成功时,将该项目文件夹下应用程序所在的路径作为 所述应用程序的安装路径。
具体实现中,有一些应用程序通过以上三种方式都无法获得其安装路径,因此需 要枚举各个磁盘的项目Program Files目录下文件夹的应用程序,用该应用程序的名称与 注册信息表中的名称进行匹配,如果匹配成功,则将该项目文件夹的路径作为所述应用程 序的安装路径。
举例来讲,在C盘的Program Files文件夹下,存在一个名称为“Movie Maker”的 文件夹,如果该“Movie Maker”与注册信息表中的应用程序的名称能够匹配成功,则将该应 用程序“Movie Maker”所在的路径“C: \Program Files\Movie Maker”作为该应用程序的安装路径。
对Application Verif ier、Flash Palyer 这类安放在 system 目录的软件,需要直 接用其扩展路径(exepath)去匹配,方式与上述类似,不再赘述。
需要说明的是,本实施例中,优先以第一种至第四种的顺序获取安装路径。本发明 实施例以上四种获取应用程序的安装路径的方式,可以最大程度的、准确的枚举应用程序 的安装路径,为之后对应用程序的使用频率进行分析提供了基础。
在获取了应用程序的安装路径的同时或之后,本发明实施例将进行调用应用程序 编程接口,监控应用程序的运行。
参见图5,为本发明提供的获取应用程序的使用频率的方法实施例二的流程示意 图。
本实施例中将详细描述本发明实施例将调用应用程序编程接口,监控应用程序的 运行的流程,包括
步骤200,调用应用程序编程接口,获取当前运行的应用程序的命令行参数。
具体实现中,首先打开API Create Process (应用程序接口创建新进程)的监控, Create Process被调用时,获取Create Process中命令行的参数。
步骤201,将应用程序的命令行参数输入一个单独的处理线程。
具体地,为了不影响Create Process的调用者的性能,在此步骤中将命令行输入一个单独的处理线程。
步骤202,监控所述处理线程中的各个命令行参数对应的应用程序的运行。
本实施例提供了对应用程序进行监控的方法,这种监控方式,更有利于准确的获得应用程序的运行情况,以便获得各个应用程序的启动时间。
参见图6,为本发明提供的获取应用程序使用频率的方法实施例三的流程示意图。
本实施例将描述如何获取应用程序的最后一次启动时间并获取使用频率的过程, 如下
步骤300,从所述处理线程中获取应用程序的最后一次启动时间并记录;
具体地,监控处理线程中的各个应用程序,可以获得该应用程序的启动时间,本实施例中,只需要记录应用程序的最后一次启动时间。用于记录该时间的工具可以是记事本或者SQlite。需要说明的是,SQlite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,它占用资源非常的低,能够支持Windows/Linux/Unix 等等主流的操作系统。
步骤301,对所述安装路径进行标准化处理;
具体地,通过本实施例的四种方式获取的安装路径可能在形式上都有所不同,在本实施例中,需要将其标准化处理,以便能够快速的查找和比较。对安装路径进行标准化处理,包括将表示所述安装路径的字符统一为小写字符;将所述安装路径的名称统一为包括短文件名、长文件名、环境变量;对所述安装路径按照通用名原则进行规范处理。例如,将 “ % system% ” 和 “C: \windows\system32” 统一标准化为 “c: \windows\system32
步骤302,记录经过标准化处理的安装路径。具体地,通过记事本或者SQlite工具,建立一张应用程序信息表,记录各个应用程序的最后一次启动时间和安装路径,如表I 所示
权利要求
1.一种获取应用程序使用频率的方法,其特征在于,包括 根据系统注册信息表,获取应用程序的安装路径; 调用应用程序编程接口,监控所述应用程序的运行; 记录所述应用程序的最后一次启动时间和安装路径; 以安装路径为索引,获取应用程序的最后一次启动时间; 比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
2.如权利要求1所述的方法,其特征在于,所述根据系统注册信息表,获取应用程序的安装路径,包括以下方式中的一种或多种 从系统注册信息表中键值为安装路径的表项中获取应用程序的安装路径; 从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径; 将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径; 将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,将该项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
3.如权利要求1或2所述的方法,其特征在于,所述调用应用程序编程接口,监控应用程序的运行,包括 调用应用程序编程接口,获取当前运行的应用程序的命令行参数; 将所述应用程序的命令行参数输入一个单独的处理线程; 监控所述处理线程中的各个命令行参数对应的应用程序的运行。
4.如权利要求3所述的方法,其特征在于,所述记录所述应用程序的最后一次启动时间和安装路径,包括 从所述处理线程中获取应用程序的最后一次启动时间并记录; 对所述安装路径进行标准化处理; 记录经过标准化处理的安装路径。
5.如权利要求4所述的方法,其特征在于,对所述安装路径进行标准化处理,包括 将表示所述安装路径的字符统一为小写字符; 将所述安装路径的名称统一为包括短文件名、长文件名、环境变量; 对所述安装路径按照通用名原则进行规范处理。
6.一种获取应用程序使用频率的装置,其特征在于,包括 路径获取模块,用于根据系统注册信息表,获取应用程序的安装路径; 程序监控模块,用于调用应用程序编程接口,监控所述应用程序的运行; 信息记录模块,用于记录所述应用程序的最后一次启动时间和安装路径; 时间获取模块,用于以安装路径为索引,在所述信息记录模块中获取应用程序的最后一次启动时间; 频率计算模块,用于比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
7.如权利要求6所述的装置,其特征在于,所述路径获取模块,包括 定向获取单元,用于从系统注册信息表中键值为安装路径的表项中获取应用程序的安装路径;或从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径。
8.如权利要求7所述的装置,其特征在于,所述路径获取模块,还包括 匹配单元,用于将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配;或将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配; 路径获取单元,用于在所属匹配单元匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径;或将所述项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
9.如权利要求6至8中任一项所述的装置,其特征在于,所述程序监控模块,包括 接口调用单元,用于调用应用程序编程接口,获取当前运行的应用程序的命令行参数; 命令行处理单元,用于将所述应用程序的命令行参数输入一个单独的处理线程; 程序监控单元,用于监控所述处理线程中的各个命令行参数对应的应用程序的运行。
10.如权利要求9所述的装置,其特征在于,所述信息记录模块包括时间记录单元,用于从所述处理线程中获取应用程序的最后一次启动时间并记录; 路径标准化单元,用于对所述安装路径进行标准化处理; 路径记录单元,用于记录经过标准化处理的安装路径。
11.如权利要求10所述的装置,其特征在于,所述路径标准化单元用于将表示所述安装路径的字符统一为小写字符;将所述安装路径的名称统一为包括短文件名、长文件名、环境变量;对所述安装路径按照通用名原则进行规范处理。
全文摘要
本发明提供了一种获取应用程序使用频率的方法和装置,所述方法包括根据系统注册信息表,获取应用程序的安装路径;调用应用程序编程接口,监控所述应用程序的运行;记录所述应用程序的最后一次启动时间和安装路径;以安装路径为索引,获取应用程序的最后一次启动时间;比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。实施本发明提供的获取应用程序使用频率的装置,通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化计算机系统提供了基础。
文档编号G06F11/34GK103019918SQ20111029651
公开日2013年4月3日 申请日期2011年9月27日 优先权日2011年9月27日
发明者王宝剑, 胡中兴, 张英皓 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1