CN103019918B - 一种获取应用程序使用频率的方法和装置 - Google Patents
一种获取应用程序使用频率的方法和装置 Download PDFInfo
- Publication number
- CN103019918B CN103019918B CN201110296513.8A CN201110296513A CN103019918B CN 103019918 B CN103019918 B CN 103019918B CN 201110296513 A CN201110296513 A CN 201110296513A CN 103019918 B CN103019918 B CN 103019918B
- Authority
- CN
- China
- Prior art keywords
- application program
- installation path
- path
- time
- title
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种获取应用程序使用频率的方法和装置,所述方法包括:根据系统注册信息表,获取应用程序的安装路径;调用应用程序编程接口,监控所述应用程序的运行;记录所述应用程序的最后一次启动时间和安装路径;以安装路径为索引,获取应用程序的最后一次启动时间;比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。实施本发明提供的获取应用程序使用频率的装置,通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化计算机系统提供了基础。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种获取应用程序使用频率的方法和装置。
背景技术
随着计算机技术的发展,用户可以在计算机系统中安装各式各样的应用程序来满足其不同的使用需求,对于各种应用程序,获取其使用的频率,根据各个应用程序的使用频率来优化系统。
目前,Windows自带的安装卸载列表中对应用程序使用频率的判断是基于非常简单的算法进行的,判断的结果不精确,很难获得用户在计算机上使用应用程序的真实频率,因此无法进一步地为用户提供系统优化方案。
发明内容
本发明实施例所要解决的技术问题是:提供一种获取应用程序使用频率的技术,可以准确统计计算机系统中安装的应用程序的使用频率,以便真实的反应用户使用应用程序的状况,以为用户提供系统优化方案。
为实现本发明的目的,本发明实施例是这种实现的:
一种获取应用程序使用频率的方法,包括:
根据系统注册信息表,获取应用程序的安装路径;
调用应用程序编程接口,监控所述应用程序的运行;
记录所述应用程序的最后一次启动时间和安装路径;
以安装路径为索引,获取应用程序的最后一次启动时间;
比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
相应地,本发明实施例还提供了一种获取应用程序使用频率的装置,包括:
路径获取模块,用于根据系统注册信息表,获取应用程序的安装路径;
程序监控模块,用于调用应用程序编程接口,监控所述应用程序的运行;
信息记录模块,用于记录所述应用程序的最后一次启动时间和安装路径;
时间获取模块,用于以安装路径为索引,在所述信息记录模块中获取应用程序的最后一次启动时间;
频率计算模块,用于比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
实施本发明,可以达到以下有益效果:
通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化计算机系统提供了基础。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图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为系统信息注册表中,SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下,关于应用程序“Autodesk Express View er”所有表项的示意图,在该表项中,寻找键值为“InstallLocation”的表项,可见其安装路径为“C:\Program Files\Autodesk\Autodesk Express Viewer”。
第二种:从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径。
具体实现中,有一些应用程序在注册信息表中,没有键值为“InstallLocatio n”的表项。因此,采取第二种方式,通过调用程序,从注册信息表SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下读取键值为UnstallString的表项后,去掉exe文件名,获取应用程序的安装路径。
举例来讲,参见图3,图3为系统信息注册表中,SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下,关于应用程序“Adobe Flash Player Ac tivex”所有表项的示意图,在该表项中,没有键值为“InstallLocation”的表项,因此寻找键值为“UnstallString”的表项,可见其表示为“C:\WINDOWS\system 32\Macromed\Flash\FlashUtil10w_ActiveX.exe-matntain activex”。去掉exe文件名,获取安装路径为C:\WINDOWS\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 Verifier、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工具,建立一张应用程序信息表,记录各个应用程序的最后一次启动时间和安装路径,如表1所示:
步骤303,以安装路径为索引,获取应用程序的最后一次启动时间;
具体地,在所述表1以安装路径为索引,查找该安装路径下的最后一次启动时间。
步骤304,比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
具体地,当获取到应用程序的最后一次启动时间后,将其和当前时间对比,如果两者之间小于3天,可以判断为经常使用;小于7天为有时使用,小于30天为很少使用,超过30天为从未使用。
需要说明的是,对输入法、插件等需要特殊处理,这类文件没有exe文件,需要调用API Create Process监控器dll文件的使用情况,这与监控exe安装文件的方式一样,不再赘述。
实施本发明提供的获取应用程序使用频率的方法,通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化计算机系统提供了基础。
参见图7,为本发明提供的一种应用程序使用频率获取装置实施例一的组成示意图。
本实施例提供的装置,包括:
路径获取模块10,用于根据系统注册信息表,获取应用程序的安装路径;
程序监控模块11,用于调用应用程序编程接口,监控所述应用程序的运行;
信息记录模块12,用于记录所述应用程序的最后一次启动时间和安装路径;
时间获取模块13,用于以安装路径为索引,在所述信息记录模块中获取应用程序的最后一次启动时间和当前时间;
频率计算模块14,用于比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
实施本发明实施例提供的装置,由于通过系统注册信息表准确获取了应用程序的安装路径,然后再基于该安装路径监控应用程序的启动情况,根据记录的最后一次启动时间来判断应用程序被使用的频率。本实施例提供的获取应用程序使用频率的方法真实有效,客观准确,可以使用户清楚地掌握其计算机系统中安装的应用程序的使用情况,用户还可以根据该获取的使用频率进一步对计算机系统进行优化。
参见图8,为本发明提供的一种应用程序使用频率获取装置实施例二的组成示意图。
本实施例将描述路径获取模块10的具体组成,包括:
定向获取单元100,用于从系统注册信息表中键值为安装路径InstallLocatio n的表项中获取应用程序的安装路径。或从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径。
具体实现中,通过调用程序,从注册信息表SOFTWARE\\Microsoft\\Windo ws\\Current Version\\Uninstall下,键值为InstallLocation的表项中获取应用程序的安装路径。
举例来讲,参见图2,图2为系统信息注册表中,SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下,关于应用程序“Autodesk Express View er”所有表项的示意图,在该表项中,寻找键值为“InstallLocation”的表项,可见其安装路径为“C:\Program Files\Autodesk\Autodesk Express Viewer”。
另外,有一些应用程序在注册信息表中,没有键值为“InstallLocation”的表项。因此,采取第二种方式,通过调用程序,从注册信息表SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下读取键值为UnstallString的表项后,去掉exe文件名,获取应用程序的安装路径。
举例来讲,参见图3,图3为系统信息注册表中,SOFTWARE\\Microsoft\\Windows\\Current Version\\Uninstall下,关于应用程序“Adobe Flash Player Ac tivex”所有表项的示意图,在该表项中,没有键值为“InstallLocation”的表项,因此寻找键值为“UnstallString”的表项,可见其表示为“C:\WINDOWS\system 32\Macromed\Flash\FlashUtil10w_ActiveX.exe-matntain activex”。去掉exe文件名,获取安装路径为C:\WINDOWS\system32\Macromed\Flash\FlashUtil10w_Acti veX.exe-matntain activex”。
所述路径获取模块10还可以包括:
匹配单元101,用于将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,或将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配;
路径获取单元102,用于在所属匹配单元匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径;或将所述项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
具体实现过程中,有一些应用程序在注册信息表中,既没有键值为“Install Location”的表项,也没有键值为“UnstallString”的表项,因此需要进一步枚举用户桌面、开始、启动快捷方式等位置的应用程序的快捷方式,通过匹配单元101将应用程序的快捷方式的名称与注册表信息中的软件名称进行模糊匹配,在匹配成功的基础上,路径获取单元102将快捷方式的指向路径作为应用程序的安装路径。
举例来讲,假设一个计算机系统中,安装了“腾讯TM2009”、“CHATM2010”、“暴风影音”等等应用程序,这些应用程序的快捷方式分别位于桌面,开始、启动快捷方式等位置。本实施例中,将枚举这些快捷方式,然后匹配单元101将所有快捷方式的名称与注册表信息中的应用程序的名称进行匹配,假设快捷方式的名称为“CHATM2010”,其与注册信息表中的“CHATM商标查询软件”进行模糊匹配时,能够匹配成功,则路径获取单元102获取该快捷方式的指向路径,详见图4,该快捷方式的指向路径为“目标(T)C:\Rabbit\chatm\exe\Quety_net.exe”,将该指向路径作为应用程序“CHATM2010”的安装路径。
另外,所述匹配单元101还用于将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,所述路径获取单元102将该项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
具体实现中,对于一些应用程序,需要枚举各个磁盘的项目Program Files目录下文件夹的应用程序,然后匹配单元101用该应用程序的名称与注册信息表中的名称进行匹配,如果匹配成功,则路径获取单元102将该项目文件夹的路径作为所述应用程序的安装路径。
举例来讲,在C盘的Program Files文件夹下,存在一个名称为“Movie Maker”的文件夹,如果匹配单元101将该“Movie Maker”与注册信息表中的应用程序的名称能够匹配成功,则路径获取单元102将该应用程序“Movie Maker”所在的路径“C:\Program Files\Movie Maker”作为该应用程序的安装路径。
对Application Verifier、Flash Palyer这类安放在system目录的软件,需要直接用其扩展路径(exepath)去匹配,其匹配方式与上述类似,不再赘述。
本发明实施例提供的路径获取模块可以实现以上四种获取应用程序的安装路径的方式,可以最大程度的、准确的枚举应用程序的安装路径,为之后对应用程序的使用频率进行分析提供了基础。
参见图9,为本发明提供的获取应用程序的使用频率的装置实施例三的组成示意图。
本实施例中将详细描述本发明实施例中的程序监控模块11,其具体包括:
接口调用单元110,用于调用应用程序编程接口,获取当前运行的应用程序的命令行参数。
具体实现中,首先打开接口调用单元110的API Create Process的监控,Create Process被调用时,获取Create Process中命令行的参数。
命令行处理单元111,用于将应用程序的命令行参数输入一个单独的处理线程。
具体地,为了不影响Create Process的调用者的性能,命令行处理单元111将命令行输入一个单独的处理线程。
程序监控单元112,用于监控所述处理线程中的各个命令行参数对应的应用程序的运行。
本实施例提供的装置可以事先对应用程序的运行情况的监控,这种监控方式,更有利于准确的获得应用程序的运行情况,以便获得各个应用程序的启动时间。
参见图10,为本发明提供的获取应用程序使用频率的装置实施例四的组成示意图。
本实施例将描述信息记录模块12的具体组成和功能,如下:
时间记录单元120,用于从所述处理线程中获取应用程序的最后一次启动时间并记录;
具体地,上述程序监控单元112监控处理线程中的各个应用程序,时间记录单元120可以获得该应用程序的启动时间,本实施例中,时间记录单元120只需要记录应用程序的最后一次启动时间。在具体实现过程中,时间记录单元120可以利用记事本或者SQlite记录应用程序的启动时间。需要说明的是,SQlite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,它占用资源非常的低,能够支持Windows/Linux/Unix等等主流的操作系统。
所述信息记录模块12还包括:
路径标准化单元121,用于对安装路径进行标准化处理;
具体地,通过本实施例的四种方式获取的安装路径可能在形式上都有所不同,在本实施例中,路径标准化单元121需要将其标准化处理,以便能够快速的查找和比较。对安装路径进行标准化处理,包括将表示所述安装路径的字符统一为小写字符;将所述安装路径的名称统一为包括短文件名、长文件名、环境变量;对所述安装路径按照通用名原则进行规范处理。
所述信息记录模块12还包括:
路径记录单元122,用于记录经过标准化处理的安装路径。具体地,路径记录单元122通过记事本或者SQlite工具,建立一张应用程序信息表,记录各个应用程序的最后一次启动时间和安装路径,如上述表1所示。
上述时间获取模块13在路径记录单元122记录的表1中,以安装路径为索引,查找该安装路径下的应用程序最后一次启动时间。
上述频率计算模块14,用于比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
具体地,当时间获取模块13获取到应用程序的最后一次启动时间后,上述频率计算模块14将其和当前时间对比,如果两者之间小于3天,可以判断为经常使用;小于7天为有时使用,小于30天为很少使用,超过30天为从未使用。
需要说明的是,对输入法、插件等需要特殊处理,这类文件没有exe文件,需要调用API Create Process监控器dll文件的使用情况,这与监控exe安装文件的方式一样,不再赘述。
实施本发明提供的获取应用程序使用频率的装置,通过拦截系统的进程启动函数,可以简单有效的获取计算机系统中安装的应用程序的使用频率,进而可以使计算机用户对自己安装的应用程序的管理更加方便,也为优化计算机系统提供了基础。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (11)
1.一种获取应用程序使用频率的方法,其特征在于,包括:
根据系统注册信息表,获取应用程序的安装路径;
调用应用程序编程接口,监控所述应用程序的运行;
记录所述应用程序的最后一次启动时间和安装路径;
以安装路径为索引,获取应用程序的最后一次启动时间;
比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
2.如权利要求1所述的方法,其特征在于,所述根据系统注册信息表,获取应用程序的安装路径,包括以下方式中的一种或多种:
从系统注册信息表中键值为安装路径的表项中获取应用程序的安装路径;
从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径;
将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径;
将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配,匹配成功时,将该项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
3.如权利要求1或2所述的方法,其特征在于,所述调用应用程序编程接口,监控应用程序的运行,包括:
调用应用程序编程接口,获取当前运行的应用程序的命令行参数;
将所述应用程序的命令行参数输入一个单独的处理线程;
监控所述处理线程中的各个命令行参数对应的应用程序的运行。
4.如权利要求3所述的方法,其特征在于,所述记录所述应用程序的最后一次启动时间和安装路径,包括:
从所述处理线程中获取应用程序的最后一次启动时间并记录;
对所述安装路径进行标准化处理;
记录经过标准化处理的安装路径。
5.如权利要求4所述的方法,其特征在于,对所述安装路径进行标准化处理,包括:
将表示所述安装路径的字符统一为小写字符;
将所述安装路径的名称统一为包括短文件名、长文件名、环境变量;
对所述安装路径按照通用名原则进行规范处理。
6.一种获取应用程序使用频率的装置,其特征在于,包括:
路径获取模块,用于根据系统注册信息表,获取应用程序的安装路径;
程序监控模块,用于调用应用程序编程接口,监控所述应用程序的运行;
信息记录模块,用于记录所述应用程序的最后一次启动时间和安装路径;
时间获取模块,用于以安装路径为索引,在所述信息记录模块中获取应用程序的最后一次启动时间;
频率计算模块,用于比较所述最后一次启动时间和当前时间,确定所述应用程序的使用频率。
7.如权利要求6所述的装置,其特征在于,所述路径获取模块,包括:
定向获取单元,用于从系统注册信息表中键值为安装路径的表项中获取应用程序的安装路径;或从系统注册信息表中键值为卸载字符串的表项中获取应用程序的安装路径。
8.如权利要求7所述的装置,其特征在于,所述路径获取模块,还包括:
匹配单元,用于将应用程序快捷方式的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配;或将各个磁盘的项目文件夹的应用程序的名称与系统注册信息表中记录的应用程序的名称进行模糊匹配;
路径获取单元,用于在所属匹配单元匹配成功时,获取快捷方式的指向路径作为所述应用程序的安装路径;或将所述项目文件夹下应用程序所在的路径作为所述应用程序的安装路径。
9.如权利要求6至8中任一项所述的装置,其特征在于,所述程序监控模块,包括:
接口调用单元,用于调用应用程序编程接口,获取当前运行的应用程序的命令行参数;
命令行处理单元,用于将所述应用程序的命令行参数输入一个单独的处理线程;
程序监控单元,用于监控所述处理线程中的各个命令行参数对应的应用程序的运行。
10.如权利要求9所述的装置,其特征在于,所述信息记录模块包括:
时间记录单元,用于从所述处理线程中获取应用程序的最后一次启动时间并记录;
路径标准化单元,用于对所述安装路径进行标准化处理;
路径记录单元,用于记录经过标准化处理的安装路径。
11.如权利要求10所述的装置,其特征在于,所述路径标准化单元用于将表示所述安装路径的字符统一为小写字符;将所述安装路径的名称统一为包括短文件名、长文件名、环境变量;对所述安装路径按照通用名原则进行规范处理。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296513.8A CN103019918B (zh) | 2011-09-27 | 2011-09-27 | 一种获取应用程序使用频率的方法和装置 |
US14/128,594 US8930970B2 (en) | 2011-09-27 | 2012-09-07 | Method and computer for obtaining using-frequency of application program |
RU2014107674/08A RU2014107674A (ru) | 2011-09-27 | 2012-09-07 | Способ и устройство определения частоты использования прикладной программы |
BR112013032005-2A BR112013032005B1 (pt) | 2011-09-27 | 2012-09-07 | método e dispositivo para obter uma frequência de uso de um aplicativo especificado |
PCT/CN2012/081150 WO2013044725A1 (en) | 2011-09-27 | 2012-09-07 | Method and device for obtaining using-frequency of application program |
EP12834947.9A EP2761462B1 (en) | 2011-09-27 | 2012-09-07 | Method and device for obtaining using-frequency of application program |
KR1020167022515A KR101667287B1 (ko) | 2011-09-27 | 2012-09-07 | 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치 |
KR20147001463A KR20140025587A (ko) | 2011-09-27 | 2012-09-07 | 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296513.8A CN103019918B (zh) | 2011-09-27 | 2011-09-27 | 一种获取应用程序使用频率的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019918A CN103019918A (zh) | 2013-04-03 |
CN103019918B true CN103019918B (zh) | 2015-07-15 |
Family
ID=47968545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110296513.8A Active CN103019918B (zh) | 2011-09-27 | 2011-09-27 | 一种获取应用程序使用频率的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8930970B2 (zh) |
EP (1) | EP2761462B1 (zh) |
KR (2) | KR101667287B1 (zh) |
CN (1) | CN103019918B (zh) |
BR (1) | BR112013032005B1 (zh) |
RU (1) | RU2014107674A (zh) |
WO (1) | WO2013044725A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512014B (zh) * | 2015-12-10 | 2018-09-25 | 北京金山安全管理系统技术有限公司 | 一种应用程序使用情况数据采集的方法和装置 |
CN105740125B (zh) * | 2016-01-29 | 2018-03-30 | 四川秘无痕信息安全技术有限责任公司 | 获取Android应用程序启动次数和时间的方法 |
US10311500B2 (en) * | 2016-09-01 | 2019-06-04 | Facebook, Inc | Methods and systems for developer onboarding for software-development products |
US10613882B2 (en) * | 2016-10-14 | 2020-04-07 | Seagate Technology Llc | Active drive API |
CN111240949B (zh) * | 2020-01-13 | 2024-04-26 | 奇安信科技集团股份有限公司 | 一种确定国产操作系统中的软件使用频率的方法及装置 |
CN111459765B (zh) * | 2020-04-16 | 2023-02-24 | Oppo广东移动通信有限公司 | 统计方法、统计装置、电子设备和存储介质 |
CN113590244B (zh) * | 2021-07-05 | 2024-03-22 | 青岛海信移动通信技术有限公司 | 应用于终端设备的设置功能的控制方法及终端设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324546B1 (en) * | 1998-10-12 | 2001-11-27 | Microsoft Corporation | Automatic logging of application program launches |
US7197431B2 (en) * | 2000-08-22 | 2007-03-27 | International Business Machines Corporation | Method and system for determining the use and non-use of software programs |
JP2002259010A (ja) * | 2001-03-05 | 2002-09-13 | Fujitsu Ltd | ショートカットアイコンの自動作成・削除プログラム |
US7032229B1 (en) * | 2001-06-04 | 2006-04-18 | Palmsource, Inc. | Automatic tracking of user progress in a software application |
US7925635B1 (en) * | 2004-04-23 | 2011-04-12 | Bmc Software, Inc. | System and method for collecting statistics related to software usage |
KR100625867B1 (ko) * | 2004-06-05 | 2006-09-20 | 소프트온넷(주) | 컴퓨터에 설치, 실행 혹은 사용중인 프로그램에 대한 정보분석, 추출, 저장 관리 및 통계를 위한 장치, 시스템,방법 및 이를 프로그램화하여 수록한 컴퓨터로 읽을 수있는 기록매체 |
US8457108B1 (en) * | 2004-12-27 | 2013-06-04 | At&T Intellectual Property Ii, L.P. | Method and apparatus for monitoring client software usage in end user device |
US7356590B2 (en) * | 2005-07-12 | 2008-04-08 | Visible Measures Corp. | Distributed capture and aggregation of dynamic application usage information |
CN100442901C (zh) | 2005-10-25 | 2008-12-10 | 华为技术有限公司 | 在设备管理中监控和升级软件的方法及装置 |
WO2008075447A1 (ja) | 2006-12-18 | 2008-06-26 | Access Co., Ltd. | アプリケーション更新管理端末、システムおよびプログラム |
WO2010027477A1 (en) * | 2008-09-02 | 2010-03-11 | Belarc, Inc. | System and method for software usage discovery |
US8713157B2 (en) * | 2008-11-14 | 2014-04-29 | Interpret, Llc | System for collecting computer application usage data of targeted application programs executed on a plurality of client devices |
JP2011039615A (ja) * | 2009-08-06 | 2011-02-24 | Kyocera Mita Corp | 情報処理装置、動作制御システム、及びウェブアプリケーション生成プログラム |
KR101170122B1 (ko) * | 2009-10-07 | 2012-07-31 | 무하디지털(주) | 외부 저장장치에 저장된 응용프로그램의 실행 시스템 및 그 방법 |
JP2011159077A (ja) * | 2010-01-29 | 2011-08-18 | Fujitsu Toshiba Mobile Communications Ltd | 携帯端末装置 |
-
2011
- 2011-09-27 CN CN201110296513.8A patent/CN103019918B/zh active Active
-
2012
- 2012-09-07 RU RU2014107674/08A patent/RU2014107674A/ru unknown
- 2012-09-07 BR BR112013032005-2A patent/BR112013032005B1/pt active IP Right Grant
- 2012-09-07 EP EP12834947.9A patent/EP2761462B1/en active Active
- 2012-09-07 KR KR1020167022515A patent/KR101667287B1/ko active IP Right Grant
- 2012-09-07 KR KR20147001463A patent/KR20140025587A/ko active Application Filing
- 2012-09-07 WO PCT/CN2012/081150 patent/WO2013044725A1/en active Application Filing
- 2012-09-07 US US14/128,594 patent/US8930970B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
BR112013032005A2 (pt) | 2016-12-27 |
WO2013044725A1 (en) | 2013-04-04 |
US8930970B2 (en) | 2015-01-06 |
KR101667287B1 (ko) | 2016-10-19 |
EP2761462B1 (en) | 2018-01-03 |
CN103019918A (zh) | 2013-04-03 |
BR112013032005B1 (pt) | 2021-07-06 |
RU2014107674A (ru) | 2015-09-10 |
KR20160103549A (ko) | 2016-09-01 |
EP2761462A1 (en) | 2014-08-06 |
US20140130065A1 (en) | 2014-05-08 |
KR20140025587A (ko) | 2014-03-04 |
EP2761462A4 (en) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019918B (zh) | 一种获取应用程序使用频率的方法和装置 | |
US9639385B2 (en) | Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes | |
KR101928127B1 (ko) | 애플리케이션용 선택적 파일 액세스 기법 | |
JP4592814B2 (ja) | 情報処理装置 | |
US20060037079A1 (en) | System, method and program for scanning for viruses | |
US20150317235A1 (en) | Systems and methods for analyzing software compatibility | |
US7802302B1 (en) | Single scan for a base machine and all associated virtual machines | |
TW201301137A (zh) | 虛擬機器影像分析 | |
GB2498626A (en) | Optimising the storage allocation in a virtual desktop environment | |
KR20060047324A (ko) | 데이터베이스 추적의 프로그램적인 검색 및 재생을 위한시스템 | |
US7793265B2 (en) | Method, apparatus and computer program product for optimizing file accesses for an application executing in a virtual container | |
US20210141923A1 (en) | Enforcing data isolation in jobs executed by a multi-tenant system on a secondary platform | |
US7793266B2 (en) | Method, apparatus and computer program product for optimizing access to the content of a virtual application container on a fixed, read-only medium | |
CN103279380A (zh) | 信息处理系统和方法 | |
US10185630B2 (en) | Failure recovery in shared storage operations | |
CN114222975A (zh) | 使用存储器孔径冲刷顺序的数据保存 | |
EP2649516A2 (en) | Platform-agnostic diagnostic data collection and display | |
WO2022187043A1 (en) | Advanced memory tracking for kernel mode drivers | |
CN107273251A (zh) | 一种在生产环境下Rack机柜JBOD存储的测试方法 | |
CN111625407B (zh) | Ssd性能测试方法及相关组件 | |
US20170228383A1 (en) | Active archive bridge | |
US20120278806A1 (en) | Data control system for virtual environment | |
CN105446785A (zh) | 卸载应用程序的方法及系统 | |
Freeman et al. | Oracle Database 11g: New Features | |
US11687490B2 (en) | Management of contextual information for data |
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 |