CN108563453A - 一种应用程序安装的识别方法及系统 - Google Patents
一种应用程序安装的识别方法及系统 Download PDFInfo
- Publication number
- CN108563453A CN108563453A CN201810280279.1A CN201810280279A CN108563453A CN 108563453 A CN108563453 A CN 108563453A CN 201810280279 A CN201810280279 A CN 201810280279A CN 108563453 A CN108563453 A CN 108563453A
- Authority
- CN
- China
- Prior art keywords
- application program
- information
- installation
- reading
- program
- 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.)
- Pending
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种应用程序安装的识别方法及系统,方法包括在应用程序安装时,向系统注册表中写入程序的安装信息;在应用程序首次运行时,向应用程序的数据运行目录中写入程序的运行信息;依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况。本发明采用了多阶段的应用程序安装信息存储,最大程度上确保应用程序的安装信息能够被检测到,准备识别应用程序的安装情况。
Description
技术领域
本发明涉及应用程序安装技术领域,具体地说是一种应用程序安装的识别方法及系统。
背景技术
应用程序,指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。
对于应用程序而言,操作系统未能提供完善的应用程序安装管理功能,因而在尝试探测某一应用程序是否安装到当前系统、是否曾经安装到当前系统,往往会陷入“无从下手”的困境,这一现状,对于应用程序的安装、卸载以及辅助操作造成了巨大障碍。
现有技术对应用程序的安装识别多通过第三方提供的应用程序管理工具,但该工具并不专用于应用程序安装识别,对应用程序的安装情况的检测往往不准确、应用程序显示不完整的情况。
发明内容
本发明实施例中提供了一种应用程序安装的识别方法及系统,以解决现有技术中缺乏对应用程序安装识别方法的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明第一方面提供了应用程序安装的识别方法,包括以下步骤:
在应用程序安装时,向系统注册表中写入程序的安装信息;
在应用程序首次运行时,向应用程序的数据运行目录中写入程序的运行信息;
依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况。
结合第一方面,在第一方面第一种可能的实现方式中,应用程序通过调用操作系统API将程序的安装信息写入系统注册表中。
结合第一方面,在第一方面第二种可能的实现方式中,所述数据运行目录为ProgramData目录和UserProfile目录。
结合第一方面,在第一方面第二种可能的实现方式中,向数据运行目录中写入程序运行信息的具体过程为:
在ProgramData目录和UserProfile目录中分别创建一个文件夹;
将程序的运行信息分别写入到两个文件夹中。
结合第一方面,在第一方面第三种可能的实现方式中,所述依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况的具体过程为:
调用file_exists函数,检查应用程序的安装目录是否存在且是否完整;
若是,则判定应用程序已安装;
若否,则分别读取注册表信息和数据运行目录的信息,判断应用程序的安装情况。
结合第一方面,在第一方面第三种可能的实现方式中,所述读取注册表信息和数据运行目录的信息,判断应用程序的安装情况的具体过程为:
读取注册表信息并判断信息是否读取成功;
若未读取成功,判断是否读取到部分信息,若读取到部分信息则判定应用程序曾经安装,否则判定应用程序未安装;
若注册表信息读取成功,分别读取数据运行目录的信息,判断是否读取到数据运行目录的全部信息,若读取到全部信息,则判定程序已安装,否则判断是否读取到部分信息,若读取到部分信息,则判定应用程序曾经安装,否则判定应用程序未安装。
本发明第二方面提供了一种应用程序安装的识别系统,所述系统包括
第一写入模块,用于在应用程序安装时,将程序的安装信息写入系统注册表中;
第二写入模块,用于在应用程序首次运行时,将程序的运行信息写入应用程序的数据运行目录中;
读取判定模块,用于依次读取应用程序的安装目录、系统注册表数据运行目录的信息,并根据信息的完整性判断应用程序的安装情况。
结合第二方面,在第二方面第一种可能的实现方式中,所述读取模块包括
第一检测单元,用于检查应用程序的安装目录,判断安装目录是否存在且是否完整;
第二检测单元,在安装目录不完整时,分别读取注册表信息和数据运行目录的信息,判断应用程序的安装情况。
结合第二方面,在第二方面第一种可能的实现方式中,所述第二检测单元还包括
第一读取单元,用于读取注册表信息;
第二读取单元,用于分别读取数据运行目录的信息;
判定单元,在未检查到安装目录、未读取到注册表信息或未读取到数据运行目录的信息时,判定应用程序未安装;在读取到部分注册表信息或部分数据运行目录信息时,判定程序曾经安装;在检查到安装目录完整、注册表信息读取成功或数据运行目录信息读取成功时,判定应用程序已安装。
本发明第二方面的所述应用程序安装的识别系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、在应用程序安装和首次运行时,分别将安装信息和运行信息写入注册表和数据运行目录中,为后续应用程序安装的识别提供了检查方向,且在应用程序安装和首次运行时,自动写入信息,操作方便,同时这种多方位备份,在最大程度上确保应用程序的安装信息能够被检测到,有效避免第三方操作带来的程序安装信息丢失。
2、在查看应用程序的安装情况时,通过检查应用程序的安装目录、系统注册表和运行目录的信息,从而获知应用程序的安装情况,无需人为查看,识别效率高且识别的准确性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的流程示意图;
图2是本发明检查应用程序安装情况的流程示意图;
图3是本发明系统的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,应用程序安装的识别方法包括以下步骤:
S1,在应用程序安装时,向系统注册表中写入程序的安装信息;
S2,在应用程序首次运行时,向应用程序的数据运行目录中写入程序的运行信息;
S3,依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况。
步骤S1中,应用程序通过调用操作系统API(Application ProgrammingInterface,应用程序编程接口)将程序的安装信息写入系统注册表中。具体过程为:调用reg query,查询应用程序相应的注册表是否存在,若不存在,则创建该应用程序的注册表,然后向注册表中写入应用程序的安装信息。
步骤S2中,数据运行目录为ProgramData目录和UserProfile目录,向这两个目录写入运行信息的具体过程为:调用boost的filesystem函数,在ProgramData目录和UserProfile目录中分别创建一个文件,然后把应用程序的运行信息分别写入到两个文件中。
通过这种多方位备份,可以避免如用户手动前置删除数据等第三方操作带来的程序安装信息丢失。
如图2所示,在步骤S3中,在需要进行应用程序安装状态检测时,首先执行S301检测应用程序的安装目录是否存在,并执行S302的操作,判断安装目录是否完整,若安装目录是完整的,直接输出S309应用程序已安装;若安装目录不完整,执行步骤S303读取注册表信息,并执行S304的操作。判断注册表信息是否读取成功,若读取成功,则执行步骤S305和S306的操作,分别读取ProgramData目录和UserProfile目录下的数据,其中步骤S305和S306的顺序不受限制,执行步骤S307,判断ProgramData目录和UserProfile目录中的数据是否全部读取成功,若全部读取成功,这输出步骤S309,应用程序已安装;若ProgramData目录和UserProfile目录中未全部读取成功,则执行S308,判断是否读取到部分信息,若读取到部分信息,则输出步骤S310,应用程序曾经安装过,若未读取到部分信息,则输出步骤S311,应用程序未安装;在步骤S304中,若判断到注册表信息读取不成功,则执行步骤S308,判断是否读取到部分信息,若读取到部分信息,则输出步骤S310,应用程序曾经安装过,若未读取到部分信息,则输出步骤S311,应用程序未安装。
步骤S301中,通过调用file_exists函数,检查安装目录中的关键文件是否存在,其中关键文件如主程序main.exe,主配置文件config.conf。
如图3所示,识别系统包括第一写入模块1、第二写入模块2和读取判定模块3,读取判定模块3包括第一检测单元31和第二检测单元32,第二检测单元32包括第一读取单元321、第二读取单元322和判定单元323。
第一写入模块1用于在应用程序安装时,将程序的安装信息写入系统注册表中;第二写入模块2用于在应用程序首次运行时,将程序的运行信息写入应用程序的数据运行目录中;读取判定模块3用于依次读取应用程序的安装目录、系统注册表数据运行目录的信息,并根据信息的完整性判断应用程序的安装情况。
第一检测单元31用于检查应用程序的安装目录,判断安装目录是否存在且是否完整;第二检测单元32在安装目录不完整时,分别读取注册表信息和数据运行目录的信息,判断应用程序的安装情况。
第一读取单元321用于读取注册表信息;第二读取单元322用于分别读取数据运行目录的信息;判定单元323在未检查到安装目录、未读取到注册表信息或未读取到数据运行目录的信息时,判定应用程序未安装;在读取到部分注册表信息或部分数据运行目录信息时,判定程序曾经安装;在检查到安装目录完整、注册表信息读取成功或数据运行目录信息读取成功时,判定应用程序已安装。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (9)
1.一种应用程序安装的识别方法,其特征是:包括以下步骤:
在应用程序安装时,向系统注册表中写入程序的安装信息;
在应用程序首次运行时,向应用程序的数据运行目录中写入程序的运行信息;
依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况。
2.根据权利要求1所述的一种应用程序安装的识别方法,其特征是:应用程序通过调用操作系统API将程序的安装信息写入系统注册表中。
3.根据权利要求1所述的一种应用程序安装的识别方法,其特征是:所述数据运行目录为ProgramData目录和UserProfile目录。
4.根据权利要求3所述的一种应用程序安装的识别方法,其特征是:向数据运行目录中写入程序运行信息的具体过程为:
在ProgramData目录和UserProfile目录中分别创建一个文件夹;
将程序的运行信息分别写入到两个文件夹中。
5.根据权利要求1所述的一种应用程序安装的识别方法,其特征是:所述依次检查应用程序的安装目录、系统注册表和数据运行目录的信息,根据信息的完整性判断应用程序的安装情况的具体过程为:
调用file_exists函数,检查应用程序的安装目录是否存在且是否完整;
若是,则判定应用程序已安装;
若否,则分别读取注册表信息和数据运行目录的信息,判断应用程序的安装情况。
6.根据权利要求5所述的一种应用程序安装的识别方法,其特征是:所述读取注册表信息和数据运行目录的信息,判断应用程序的安装情况的具体过程为:
读取注册表信息并判断信息是否读取成功;
若未读取成功,判断是否读取到部分信息,若读取到部分信息则判定应用程序曾经安装,否则判定应用程序未安装;
若注册表信息读取成功,分别读取数据运行目录的信息,判断是否读取到数据运行目录的全部信息,若读取到全部信息,则判定程序已安装,否则判断是否读取到部分信息,若读取到部分信息,则判定应用程序曾经安装,否则判定应用程序未安装。
7.一种应用程序安装的识别系统,其特征是:所述系统包括
第一写入模块,用于在应用程序安装时,将程序的安装信息写入系统注册表中;
第二写入模块,用于在应用程序首次运行时,将程序的运行信息写入应用程序的数据运行目录中;
读取判定模块,用于依次读取应用程序的安装目录、系统注册表数据运行目录的信息,并根据信息的完整性判断应用程序的安装情况。
8.根据权利要求7所述的一种应用程序安装的识别系统,其特征是:所述读取模块包括
第一检测单元,用于检查应用程序的安装目录,判断安装目录是否存在且是否完整;
第二检测单元,在安装目录不完整时,分别读取注册表信息和数据运行目录的信息,判断应用程序的安装情况。
9.根据权利要求8所述的一种应用程序安装的识别系统,其特征是:所述第二检测单元还包括
第一读取单元,用于读取注册表信息;
第二读取单元,用于分别读取数据运行目录的信息;
判定单元,在未检查到安装目录、未读取到注册表信息或未读取到数据运行目录的信息时,判定应用程序未安装;在读取到部分注册表信息或部分数据运行目录信息时,判定程序曾经安装;在检查到安装目录完整、注册表信息读取成功或数据运行目录信息读取成功时,判定应用程序已安装。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810280279.1A CN108563453A (zh) | 2018-04-02 | 2018-04-02 | 一种应用程序安装的识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810280279.1A CN108563453A (zh) | 2018-04-02 | 2018-04-02 | 一种应用程序安装的识别方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108563453A true CN108563453A (zh) | 2018-09-21 |
Family
ID=63533616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810280279.1A Pending CN108563453A (zh) | 2018-04-02 | 2018-04-02 | 一种应用程序安装的识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563453A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110956052A (zh) * | 2019-11-26 | 2020-04-03 | 维沃移动通信有限公司 | 一种信息处理方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815445A (zh) * | 2005-02-05 | 2006-08-09 | 联想(北京)有限公司 | 一种应用程序检测及安装方法 |
CN102736978A (zh) * | 2012-06-26 | 2012-10-17 | 奇智软件(北京)有限公司 | 一种检测应用程序的安装状态的方法及装置 |
CN103701922A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | Paas平台的应用安全部署的方法和系统 |
CN104239215A (zh) * | 2014-09-30 | 2014-12-24 | 北京奇虎科技有限公司 | 无用软件的排查方法和装置 |
US20170153879A1 (en) * | 2015-11-30 | 2017-06-01 | International Business Machines Corporation | Tracking an application installation state |
-
2018
- 2018-04-02 CN CN201810280279.1A patent/CN108563453A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815445A (zh) * | 2005-02-05 | 2006-08-09 | 联想(北京)有限公司 | 一种应用程序检测及安装方法 |
CN102736978A (zh) * | 2012-06-26 | 2012-10-17 | 奇智软件(北京)有限公司 | 一种检测应用程序的安装状态的方法及装置 |
CN103701922A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | Paas平台的应用安全部署的方法和系统 |
CN104239215A (zh) * | 2014-09-30 | 2014-12-24 | 北京奇虎科技有限公司 | 无用软件的排查方法和装置 |
US20170153879A1 (en) * | 2015-11-30 | 2017-06-01 | International Business Machines Corporation | Tracking an application installation state |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110956052A (zh) * | 2019-11-26 | 2020-04-03 | 维沃移动通信有限公司 | 一种信息处理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256558B (zh) | 一种测试用例的生成方法、装置、计算机设备及存储介质 | |
WO2020024407A1 (zh) | 电子装置、车险智能理赔方法及存储介质 | |
CN109726136A (zh) | 数据库的测试方法、装置、设备和存储介质 | |
CN110659256B (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
CN109614203B (zh) | 一种基于应用数据仿真的安卓应用云数据取证分析系统及方法 | |
CN110427735A (zh) | 一种校验方法、装置、服务器及存储介质 | |
CN101604290B (zh) | 一种后台模块测试方法和后台模块测试系统 | |
CN112100070A (zh) | 版本缺陷的检测方法、装置、服务器及存储介质 | |
CN108874441A (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN111274130A (zh) | 一种自动化测试方法、装置、设备及存储介质 | |
CN108804257A (zh) | 终端状态检测方法、装置、终端及存储介质 | |
US8341538B1 (en) | Systems and methods for reducing redundancies in quality-assurance reviews of graphical user interfaces | |
CN108563453A (zh) | 一种应用程序安装的识别方法及系统 | |
CN116541270B (zh) | 一种操作系统的适配验证测试方法及装置 | |
CN110162729B (zh) | 建立浏览器指纹以及识别浏览器类型的方法、装置 | |
CN107562593A (zh) | 一种验证内存ecc功能的自动化测试方法与系统 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN112000738A (zh) | 数据库连接的切换方法、装置、设备及介质 | |
CN109522174A (zh) | 控制adb使能的方法、装置、终端及存储介质 | |
CN115761778A (zh) | 一种文献重构方法、装置、设备和存储介质 | |
CN113722357B (zh) | 数据文件校验方法、装置、电子设备及存储介质 | |
CN106066820B (zh) | 验证挂载恢复卷的自动化测试方法及系统 | |
CN115422091A (zh) | 一种固件调试方法及装置、电子设备、存储介质 | |
CN116467156A (zh) | 联调测试方法、装置、存储介质及电子设备 | |
CN106469108A (zh) | 一种车载系统异常处理装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180921 |
|
RJ01 | Rejection of invention patent application after publication |