安装软件的方法和装置的制作方法

文档序号:6596758阅读:171来源:国知局

专利名称::安装软件的方法和装置的制作方法
技术领域
:本发明涉及计算机领域,特别涉及一种安装软件的方法和装置。
背景技术
:随着计算机及互联网技术的发展,电脑在人们的工作、生活中承载着越来越重要的作用,各种各样功能的软件也越来越多,一般个人用户的电脑中通常需要安装几十甚至上百款软件。当有众多软件需要安装时,安装的过程繁琐、并且耗时。针对这一问题,现有技术中一般有下述方法从安装队列中取出一个安装任务,以普通方式执行安装包,创建安装进程,在安装该安装包时用户交互,安装进程退出后,取出下一个安装任务,重复以上安装步骤。在对现有技术进行分析后,发明人发现现有技术至少具有如下缺点在执行安装包时,是以普通方式调用安装包,弹出安装向导,等待用户交互。而这里的用户交互,通常只是简单地不断地点击"下一步"按钮,比较繁琐。特别是当需要安装的软件很多时,安装效率低,用户体验差。
发明内容本发明实施例提供了一种安装软件的方法和装置。所述技术方案如下—方面,一种安装软件的方法,当有两个或两个以上待安装的安装任务时,包括从安装队列中取出安装任务;如果所述安装任务的类型已知,为所述安装任务传入与所述类型相应的静默安装参数,创建安装进程;根据所述安装进程,安装所述安装任务,当所述安装任务完成时,从所述安装队列中取出下一个安装任务。从安装队列中取出安装任务之前包括根据预设的排序方式,为待安装的安装任务建立安装队列。为所述安装任务传入与所述类型相应的静默安装参数具体包括通过命令行参数为所述安装任务传入与所述类型相应的静默安装参数。根据所述安装进程,安装所述安装任务具体包括判断所述安装任务是否支持进度通知,如果是,则根据所述进度通知,解析出安装进度值和结果码,根据所述安装进度值和结果码,安装所述安装任务;如果否,则检测所述安装进程,根据所述安装进程的状态,安装所述安装任务。当所述安装任务完成时,从所述安装队列中取出下一个安装任务具体包括如果安装进度值达到100%,且结果码表示安装正常,则所述安装任务完成,从所述安装队列中取出下一个安装任务;如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务;如果检测到已退出所述安装进程,则所述安装任务完成,从所述安装队列中取出下一个安装任务。检测所述安装进程具体包括用检测进程句柄的方式检测所述安装进程。所述方法还包括如果所述安装任务的类型未知,则以普通方式安装所述安装任务。另一方面,一种安装软件的装置,当有两个或两个以上待安装的安装任务时,其特征在于,包括取出模块,用于从安装队列中取出安装任务;创建模块,用于如果所述安装任务的类型已知,为所述安装任务传入与所述类型相应的静默安装参数,创建安装进程;安装模块,用于根据所述安装进程,安装所述安装任务,当所述安装任务完成时,从所述安装队列中取出下一个安装任务。所述装置还包括队列模块,用于根据预设的排序方式,为待安装的安装任务建立安装队列。所述创建模块包括参数传入单元,用于通过命令行参数为所述安装任务传入与所述类型相应的静默安装参数。所述安装模块具体包括判断单元,用于判断所述安装任务是否支持进度通知,第一安装单元,用于当所述安装任务支持进度通知时,则根据所述进度通知,解析出安装进度值和结果码,根据所述安装进度值和结果码,安装所述安装任务;第二安装单元,用于当所述安装任务不支持进度通知时,则检测所述安装进程,根据所述安装进程的状态,安装所述安装任务。所述安装模块包括第一取出单元,用于如果安装进度值达到100%,结果码表示安装正常,则所述安装任务完成,从所述安装队列中取出下一个安装任务;第二取出单元,用于如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务;第三取出单元,用于如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务。所述第二安装单元具体包括检测子单元,用于用检测进程句柄的方式检测所述安装进程。所述装置还包括普通安装模块,用于如果所述安装任务的类型未知,则以普通方式安装所述安装任务。本发明实施例提供的技术方案的有益效果是本发明通过当有两个或两个以上待安装的安装任务时,为安装任务加入静默安装参数,执行静默安装,并根据安装任务的进度通知或进程是否已退出,来判断安装任务是否完成,安装任务完成后,继续安装下一个安装任务,该方法可以简单、快捷的安装软件,减少了用户交互,提高了安装的效率,有效的节约用户时间。图1是本发明实施例提供的一种安装软件的方法的流程图;图2是本发明实施例提供的另一种安装软件的方法的流程图;图3是本发明实施例提供的一种安装软件的装置的结构示意图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1为了简化安装多个软件时的操作,提高用户体验,本发明实施例提供了一种安装软件的方法,当有两个或两个以上待安装的安装任务时,如图1所示,该方法包括101:从安装队列中取出安装任务;102:如果该安装任务的类型已知,为该安装任务传入与该类型相应的静默安装参数,创建安装进程;103:根据该安装进程,安装该安装任务,当该安装任务完成时,从该安装队列中取出下一个安装任务。其中,上述步骤101中,从安装队列中取出安装任务之前包括根据预设的排序方式,为待安装的安装任务建立安装队列。其中,上述步骤102中,为该安装任务传入与该类型相应的静默安装参数具体包括通过命令行参数为该安装任务传入与该类型相应的静默安装参数。其中,上述步骤103中,根据该安装进程,安装该安装任务具体包括判断该安装任务是否支持进度通知,如果是,则根据该进度通知,解析出安装进度值和结果码,根据该安装进度值和结果码,安装该安装任务;如果否,则检测该安装进程,根据该安装进程的状态,安装该安装任务。其中,上述步骤103中,当该安装任务完成时,从该安装队列中取出下一个安装任务具体包括如果安装进度值达到100%,且结果码表示安装正常,则该安装任务完成,从该安装队列中取出下一个安装任务;如果该结果码表示安装失败,则该安装任务完成,从该安装队列中取出下一个安装任务;如果检测到已退出该安装进程,则该安装任务完成,从该安装队列中取出下一个安装任务。其中,上述检测该安装进程具体包括用检测进程句柄的方式检测该安装进程。上述方法还包括如果该安装任务的类型未知,则以普通方式安装该安装任务。本发明通过当有两个或两个以上待安装的安装任务时,为安装任务加入静默安装参数,执行静默安装,并根据安装任务的进度通知或进程是否已退出,来判断安装任务是否完成,安装任务完成后,继续安装下一个安装任务,该方法可以简单、快捷的安装软件,减少了用户交互,提高了安装的效率,有效的节约用户时间。实施例2为了简化安装多个软件时的操作,提高用户体验,本发明实施例提供了一种安装软件的方法,当有两个或两个以上待安装的安装任务时,如图2所示,该方法包括201:根据预设的排序方式,为待安装的安装任务建立安装队列;其中,预设的排序方式可以是根据用户的设定的优先级来排序,也可以根据安装包下载完成的顺序排序,还可以根据插件的重要性排序,本发明实施例对此不做具体限定。其中,建立安装队列是为待安装的安装任务排序,以便按照顺序安装。需要说明的是,本发明实施例所指的待安装的安装任务,可以是多个软件安装包,也可以是多个软件升级包,本发明实施例对此不做具体限定。当待安装的安装任务为软件升级包时,在步骤201之前包括但不限于以下过程启动软件升级,对本地已装软件列表进行检测,该检测包括对版本号等的检测;向服务器查询需要升级的软件列表及具体的配置信息,该具体的配置信息包括版本号、下载安装包的URL、下载限速参数等;根据需要升级的软件列表及具体的配置信息逐个从文件服务器下载安装包;完成该批量下载的过程后,再进行进行步骤201及后续的步骤。需要说明的是,本领域技术人员可以获知,上述对本地已装软件列表进行检测的方法可以有多种,本发明实施例不做具体限定。202:从安装队列中取出一个安装任务;其中,取出方式一般是从安装队列优先级最高的安装任务开始取,该优先级指该安装任务在安装队列中所处的位置,如果相对靠前,则优先级较高,如果该安装任务处于安装队列的第一位则称其优先级最高。需要说明的是,本领域技术人员可以获知,当取出一个安装任务后,需要对安装任务的类型进行判断,如果客户端可以识别安装任务的安装包参数,则该安装任务的类型为已知,如果客户端无法识别安装任务的安装包参数,则该安装任务的类型为未知。需要说明的是,每一个安装任务的安装包参数都是由后台系统配置,配置的参数包括但不限于下载链接、版本号、静默安装命令行格式参数、是否支持进度通知、进度通知的格式参数等。这些参数配置通过服务器下发到客户端,由客户端具体解释执行。203:如果安装任务的类型已知,为取出的安装任务传入与该类型相应的相应的静默安装参数,创建安装进程;其中,本领域技术人员可以获知,静默安装参数用于命令安装包执行静默安装,静默安装指的是安装时无需任何用户干预,直接按默认设置安装,当静默安装时,用户无需与计算机进行交互。另外,不同的软件安装包的静默安装命令行参数可能不相同,因此客户端需要兼容多种静默安装格式。对于类型已知的安装任务,可以根据其类型,为其传入与其相对应的静默安装参数。需要说明的是,每一款软件的具体静默安装参数通过后台配置系统人工配置,并通过服务器下发给客户端。具体地,为取出的安装任务传入静默安装参数具体包括通过命令行参数为安装任务传入静默安装参数,命令行参数为具体格式可以如下setup.exe##silence=l&handle="value"其中,silence的值固定为l,表示静默安装,即无界面安装;handle标识了界面程序的主窗口句柄,它的值一般为十进制,用于通知安装进度及结果。例如,对于QQ安装程序,可以有以下静默参数QQ.exe##silence=l&handle=3721。进一步地,如果安装任务的类型未知,则以普通方式安装该安装任务。这里所说的普通方式是指一般安装软件的方式。204:判断安装任务是否支持进度通知,如果是,执行步骤205,如果否,执行步骤206;其中,判断安装任务是否支持进度通知的方法是查询安装任务的安装包的配置参数,根据参数判断安装任务是否支持进度通知。205:根据进度通知,解析出安装进度值和结果码,根据所述安装进度值和结果码完成界面显示并安装该安装任务,当安装进度值达到100%,且结果码表示安装正常,则该安装任务完成,执行步骤207;其中,进度通知是软件安装时发送给客户端的用于通知安装状态的消息,结果码是表示安装是否正常及描述安装失败原因的参数。需要说明的是,进度通知可以通过多种方式进行,比如消息、管道、共享内存等,本发明实施例对此不做限制,本发明实施例仅以通过消息通知方式接口为例进行说明,示例如下通过WM_COPYDATA消息来通知,界面程序在该消息的响应中更新界面安装进度。消息定义可以如下Message:WM_COPYDATAwParam:发送者窗口句柄1Param:指向COPYDATASTRUCT结构COPYDATASTRUCT的参数含义具体见下表<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>按照上述定义,各种安装状态的具体结果码值可以有以下定义〃预定义宏#defineSETUP_NOTIFY10001#defineIRE—SUCCESS0#defineIRE—DISKFULL1#defineIRE—OSNOTSUPPORT2安装状态的结果码通知格式可以有多种,本发明实施例仅以以下函数为例进行说明例如当结果码通知格式为SendlnstallProgress(HWNDhWnd,DWORDdwProgress,DWORDdwResult),则有消息SendlnstallProgress(hWnd,30,IRE_SUCCESS);该消息的具体内容为当前安装进度为30%,安装正常;消息SendInstallProgress(hWnd,100,IRE_SUCCESS);该消息的具体内容为当前安装进度为100%,安装正常;消息SendlnstallProgress(hWnd,20,IRE_DISKFULL);该消息的具体内容为当前安装进度为20%,安装失败,因为磁盘空间满。进一步地,如果结果码表示安装失败,则该安装任务完成,此时可以判断安装队列中是否有安装任务,如果是,执行步骤208,也可以根据消息的内容,修正、改正错误或重试安装过程,直到成功后再进行后续的步骤。需要说明的是,不同的软件安装包的进度通知格式可能不相同,有些可能不支持进度通知,因此客户端需要兼容多种静默安装格式。每一款软件的具体进度通知格式参数通过后台配置系统人工配置,并通过服务器下发给客户端。后台配置系统具体下发的配置信息可通过xml结构表示,本发明实施例对此不做具体限定。206:检测安装进程,根据安装进程的状态,安装该安装任务,如果检测到已退出安装进程,则安装任务完成。具体地,检测安装进程一般是通过检测进程句柄的方式进行的,当检测到已退出该安装进程,则安装任务完成。需要说明的是,上述步骤204-206中是先判断安装任务是否支持进度通知,然后根据判断的结果安装,也可以在开始安装的同时进行是否支持进度通知的判断,然后再根据判断的结果继续安装,还可以在开始安装后进行是否支持进度通知的判断,然后再根据判断的结果继续安装,开始安装和判断的顺序可以互换。207:当安装完毕时,判断安装队列中是否还有安装任务,如果是,执行步骤208,如果否,执行步骤209;208:从安装队列中取出下一个安装任务,执行步骤203;需要说明的是,如果在安装的同时,还有新的软件下载完毕,该新的软件可以与安装队列中剩余的安装任务重新排序,或直接排在安装队列的最后,视用户的设置而定。209:结束。本发明通过当有两个或两个以上待安装的安装任务时,为安装任务加入静默安装参数,执行静默安装,并根据安装任务的进度通知或进程是否已退出,来判断安装任务是否完成,安装任务完成后,继续安装下一个安装任务,该方法可以简单、快捷的安装软件,减少了用户交互,提高了安装的效率,有效的节约用户时间。实施例3为了简化安装多个软件时的操作,提高用户体验,本发明实施例提供了一种安装软件的装置,用于当有两个或两个以上待安装的安装任务时,如图3所示,该装置包括取出模块301,用于从安装队列中取出安装任务;创建模块302,用于如果该安装任务的类型已知,为该安装任务传入与该类型相应的静默安装参数,创建安装进程;该创建模块302包括参数传入单元3021,用于通过命令行参数为该安装任务传入与该类型相应的静默安装参数。安装模块303,用于根据该安装进程,安装该安装任务,当该安装任务完成时,从该安装队列中取出下一个安装任务。该安装模块303具体包括判断单元3031,用于判断该安装任务是否支持进度通知,第一安装单元3032,用于当该安装任务支持进度通知时,则根据该进度通知,解析出安装进度值和结果码,根据该安装进度值和结果码,安装该安装任务;第二安装单元3033,用于当该安装任务不支持进度通知时,则检测该安装进程,根据该安装进程的状态,安装该安装任务。该第二安装单元3033具体包括检测子单元30331,用于用检测进程句柄的方式检测该安装进程。第一取出单元3034,用于如果安装进度值达到100%,结果码表示安装正常,则该安装任务完成,从该安装队列中取出下一个安装任务;第二取出单元3035,用于如果该结果码表示安装失败,则该安装任务完成,从该安装队列中取出下一个安装任务;第三取出单元3036,用于如果该结果码表示安装失败,则该安装任务完成,从该安装队列中取出下一个安装任务。该装置还包括队列模块300,用于根据预设的排序方式,为待安装的安装任务建立安装队列。该装置还包括普通安装模块304,用于如果该安装任务的类型未知,则以普通方式安装该安装任务。本实施例提供的装置,与方法实施例属于同一构思,其具体实现过程详见方法实施例,在此不再赘述。本发明通过当有两个或两个以上待安装的安装任务时,为安装任务加入静默安装参数,执行静默安装,并根据安装任务的进度通知或进程是否已退出,来判断安装任务是否完成,安装任务完成后,继续安装下一个安装任务,该方法可以简单、快捷的安装软件,减少了用户交互,提高了安装的效率,有效的节约用户时间。本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求一种安装软件的方法,当有两个或两个以上待安装的安装任务时,其特征在于,包括从安装队列中取出安装任务;如果所述安装任务的类型已知,为所述安装任务传入与所述类型相应的静默安装参数,创建安装进程;根据所述安装进程,安装所述安装任务,当所述安装任务完成时,从所述安装队列中取出下一个安装任务。2.根据权利要求1所述的方法,其特征在于,从安装队列中取出安装任务之前包括根据预设的排序方式,为待安装的安装任务建立安装队列。3.根据权利要求1或2任一项所述的方法,其特征在于,为所述安装任务传入与所述类型相应的静默安装参数具体包括通过命令行参数为所述安装任务传入与所述类型相应的静默安装参数。4.根据权利要求1或2任一项所述的方法,其特征在于,根据所述安装进程,安装所述安装任务具体包括判断所述安装任务是否支持进度通知,如果是,则根据所述进度通知,解析出安装进度值和结果码,根据所述安装进度值和结果码,安装所述安装任务;如果否,则检测所述安装进程,根据所述安装进程的状态,安装所述安装任务。5.根据权利要求4所述的方法,其特征在于,当所述安装任务完成时,从所述安装队列中取出下一个安装任务具体包括如果安装进度值达到100%,且结果码表示安装正常,则所述安装任务完成,从所述安装队列中取出下一个安装任务;如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务;如果检测到已退出所述安装进程,则所述安装任务完成,从所述安装队列中取出下一个安装任务。6.根据权利要求4所述的方法,其特征在于,检测所述安装进程具体包括用检测进程句柄的方式检测所述安装进程。7.根据权利要求1、2、5、6任一项所述的方法,其特征在于,所述方法还包括如果所述安装任务的类型未知,则以普通方式安装所述安装任务。8.—种安装软件的装置,当有两个或两个以上待安装的安装任务时,其特征在于,包括取出模块,用于从安装队列中取出安装任务;创建模块,用于如果所述安装任务的类型已知,为所述安装任务传入与所述类型相应的静默安装参数,创建安装进程;安装模块,用于根据所述安装进程,安装所述安装任务,当所述安装任务完成时,从所述安装队列中取出下一个安装任务。9.根据权利要求8所述的装置,其特征在于,所述装置还包括队列模块,用于根据预设的排序方式,为待安装的安装任务建立安装队列。10.根据权利要求8或9任一项所述的装置,其特征在于,所述创建模块包括参数传入单元,用于通过命令行参数为所述安装任务传入与所述类型相应的静默安装参数。11.根据权利要求8或9任一项所述的装置,其特征在于,所述安装模块具体包括判断单元,用于判断所述安装任务是否支持进度通知,第一安装单元,用于当所述安装任务支持进度通知时,则根据所述进度通知,解析出安装进度值和结果码,根据所述安装进度值和结果码,安装所述安装任务;第二安装单元,用于当所述安装任务不支持进度通知时,则检测所述安装进程,根据所述安装进程的状态,安装所述安装任务。12.根据权利要求9所述的装置,其特征在于,所述安装模块包括第一取出单元,用于如果安装进度值达到100%,结果码表示安装正常,则所述安装任务完成,从所述安装队列中取出下一个安装任务;第二取出单元,用于如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务;第三取出单元,用于如果所述结果码表示安装失败,则所述安装任务完成,从所述安装队列中取出下一个安装任务。13.根据权利要求11所述的装置,其特征在于,所述第二安装单元具体包括检测子单元,用于用检测进程句柄的方式检测所述安装进程。14.根据权利要求8、9、12、13任一项所述的装置,其特征在于,所述装置还包括普通安装模块,用于如果所述安装任务的类型未知,则以普通方式安装所述安装任务。全文摘要本发明公开了一种安装软件的方法和装置,属于计算机领域。该方法包括从安装队列中取出安装任务;如果安装任务的类型已知,为安装任务传入与类型相应的静默安装参数,创建安装进程;根据安装进程,安装该安装任务,当安装任务完成时,从安装队列中取出下一个安装任务。还公开了一种安装软件的装置,该装置包括取出模块,创建模块和安装模块。本发明通过为安装任务加入静默安装参数,可以简单、快捷的安装软件,减少了用户交互,提高了安装的效率,有效的节约用户时间。文档编号G06F9/445GK101727344SQ20101000056公开日2010年6月9日申请日期2010年1月12日优先权日2010年1月12日发明者王宝剑申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1