CN104346195B - 软件安装方法和系统 - Google Patents

软件安装方法和系统 Download PDF

Info

Publication number
CN104346195B
CN104346195B CN201410248236.7A CN201410248236A CN104346195B CN 104346195 B CN104346195 B CN 104346195B CN 201410248236 A CN201410248236 A CN 201410248236A CN 104346195 B CN104346195 B CN 104346195B
Authority
CN
China
Prior art keywords
installation
software
script
kit
client
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
Application number
CN201410248236.7A
Other languages
English (en)
Other versions
CN104346195A (zh
Inventor
潘之漪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410248236.7A priority Critical patent/CN104346195B/zh
Publication of CN104346195A publication Critical patent/CN104346195A/zh
Application granted granted Critical
Publication of CN104346195B publication Critical patent/CN104346195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种软件安装方法,包括:接收客户端发送的对待安装软件的安装请求;根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;发送所述安装脚本至所述客户端供所述客户端执行。本发明还提供另一种软件安装方法,包括:生成所述待安装软件的安装请求并发送给服务端;接收所述服务端根据所述安装请求返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包。本发明还提供对应的系统,本发明处理过程简单快速,能显著提高拦截插件的效率。

Description

软件安装方法和系统
技术领域
本发明涉及计算机领域,特别是涉及一种软件安装方法,以及一种软件安装系统。
背景技术
目前现有技术中拦截软件安装包中的插件有两种方法。
第一种,技术人员编写点击脚本,用于模拟用户的鼠标键盘操作,一步步去掉安装步骤中的插件勾选框,然后使用专用工具打包后手动分发给用户,用户运行打包后的新安装包,达到自动去除插件的目的。
第二种,技术人员预先安装软件,然后分析该软件所打包的插件,对安装后的软件进行重新打包,保留软件的主体,去除插件,然后手动分发给用户下载。用户安装后即可得到纯净的无插件的软件。
现有的各种方案的缺点主要在于处理步骤复杂、人力成本大、并且准确率不足。市面上的软件众多,安装包更新速度快,每一次厂商更新安装包,都有可能使之前专门制作的去插件安装包失效;上述经处理过的无插件安装包,由特定的服务端处理后发布,用户需从该特定的服务端下载才能获取到;若用户从其他渠道获得安装包,则仍然存在安装过程捆绑插件的风险;上述两种方法具有一定的局限性。并且,上述两种方法都需要运行安装包后进行分析处理,之后再重新打包安装包,处理过程繁琐,效率低下。
发明内容
基于此,本发明提供一种软件安装方法和系统,其处理过程简单快速,能显著提高拦截插件的效率。
一种软件安装方法,包括如下步骤:
接收客户端发送的对待安装软件的安装请求;
根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
发送所述安装脚本至所述客户端供所述客户端执行。
一种软件安装方法,包括如下步骤:
生成所述待安装软件的安装请求并发送给服务端;
接收所述服务端根据所述安装请求返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包。
一种软件安装系统,包括:
请求接收模块,用于接收客户端发送的对待安装软件的安装请求;
查找模块,用于根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
脚本发送模块,用于发送所述安装脚本至所述客户端供所述客户端执行。
一种软件安装系统,包括:
请求生成模块,用于生成所述待安装软件的安装请求并发送给服务端;
脚本接收模块,用于接收所述服务端根据所述安装请求返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
脚本执行模块,用于执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包。
上述软件安装方法和系统,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得的软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
附图说明
图1为本发明软件安装方法在一实施例中的流程示意图。
图2为本发明软件安装方法在一实施例中生成安装脚本的流程示意图。
图3为本发明软件安装方法在一实施例中识别软件安装包采用第三方打包工具进行打包的流程示意图。
图4为本发明软件安装方法在一实施例中编制安装脚本的流程示意图。
图5为本发明软件安装方法在另一实施例中判断是否安装插件的流程示意图。
图6为本发明软件安装方法在另一实施例中的流程示意图。
图7为本发明软件安装方法在一实施例中检测是否成功拦截插件的流程示意图。
图8为本发明软件安装方法在另一实施例中的流程示意图。
图9为本发明软件安装系统在一实施例中的结构示意图。
图10为本发明软件安装系统在另一实施例中的结构示意图。
图11为本发明软件安装系统在另一实施例中的结构示意图。
图12为本发明软件安装系统在另一实施例中的结构示意图。
图13为本发明软件安装系统在另一实施例中的结构示意图。
图14为本发明软件安装系统在另一实施例中的结构示意图。
图15为本发明实施例的一个计算机系统1000的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明软件安装方法在一实施例中的流程示意图,本实施例以服务端为例进行说明,可包括如下步骤:
S11、接收客户端发送的对待安装软件的安装请求;
服务端接收来自客户端的安装请求,该安装请求是由客户端对待安装软件进行自动安装时,触发并发送的安装请求。
S12、根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端接收该安装请求,安装请求中可记录有所述待安装软件的名称及版本号,服务端则可根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本;其中,安装脚本预先编制,包含了能拦截插件的安装命令;
一般的软件安装包中,除了主程序外,经常还附带有软件厂商提供的其他应用程序,本实施例中的插件,即是指软件安装包中附带的除了主程序之外,软件厂商添加的其他功能的应用程序;
脚本是指使用特定的描述性语言,按一定格式编写的可执行文件;本实施例中的安装脚本,也即是包含多条安装命令的文件,在执行时可翻译成操作系统可识别的指令,根据指令实现对软件安装包的运行操作。
S13、发送所述安装脚本至所述客户端供所述客户端执行;
本实施例中,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤,提高了处理效率;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
对于安装脚本中的安装命令,可包括预设的静默安装命令,如图2所示,示出了一个生成安装脚本的实施例,本实施例的软件安装方法还可包括如下步骤:
S21、读取预设的所述软件的安装包中的文件;
S22、根据所述安装包中的文件,当判断所述待安装软件采用预设的第三方打包工具进行打包时,获取预设的与所述第三方打包工具对应的静默安装命令;
S23、将所述静默安装命令添加到所述安装脚本中;
根据本发明的一个实施例,可预先获取各种常用软件的安装包,对安装包进行分析处理,预先编制好安装脚本;服务端可构建一安装脚本数据库,存储有常用软件的名称、版本号及其对应的安装脚本。
制作安装程序时,需要采用打包工具对制作好的文件进行打包,常用的制作安装程序的软件有:MicrosoftWindowsInstaller、Windows补丁包、InstallShield、InstallShieldwithMSI、WISEInstaller、InnoSetup和NullSoftInstallationSystem等第三方打包工具;第三方打包工具多有对应的能支持静默安装且具有自动拦截插件的静默安装命令,因此,若检测到软件安装包采用第三方打包工具进行打包时,则可根据预存的第三方打包工具及其静默安装命令的对应关系,获取第三方打包工具的静默安装命令,作为所述安装命令记录在安装脚本中。
例如,WISEInstaller打包工具,其静默安装命令为“/s”,执行该命令可实现对采用WISEInstaller打包工具打包的软件进行静默安装;
InnoSetup打包工具,其静默安装命令为“setup.exe/sp-/silent/norestart”,执行该命令可实现对采用InnoSetup打包工具打包的软件进行静默安装;
NullSoftInstallationSystem打包工具,其静默安装命令为“/S”,执行该命令可实现对采用NullSoftInstallationSystem打包工具打包的软件进行静默安装。
根据获取到的第三方打包工具对应的静默安装命令,将静默安装命令记录到安装脚本中,下面是一个安装脚本中静默安装命令的实施例:
其中,安装命令“<![CDATA[/S"/D=${InstallPath}\Tencent\QQLive"]]>”中,“/S”即为静默安装命令,"/D=${InstallPath}\Tencent\QQLive"表示指定的安装路径。
具体的,如何判断所述软件安装包是否采用第三方打包工具进行打包,如图3所示,可包括如下步骤:
S31、根据所述安装包中的文件,检测是否包含有第一特征码;其中,所述第一特征码为预设的与所述第三方打包工具对应的特征码;
S32、若是,则判断所述待安装软件采用第三方打包工具进行打包;
第三方打包工具本身具有特定的特征码,在软件制作打包时,在软件安装包中某些文件的程序入口部分会附带有上述的特征码;因此扫描软件安装包的文件,检测所述文件是否包含有特征码,根据预存的与第三方打包工具及其特征码的对应关系,则可判断出该软件安装包是否采用第三方打包工具进行打包。
例如,WiseInstallerStub打包工具的特征码为:
signature=558BEC81EC780500005356BE04010000578D8594FDFFFF5633DB5053FF15342040008D8594FDFFFF56508D8594FDFFFF50FF15302040008B3D2C20400053536A03536A018D8594FDFFFF680000008050FFD783F8FF8945FC0F847B0100008D8590FCFFFF5056FF15282040008D8598FEFFFF50538D8590FCFFFF681030400050FF15242040005368800000006A0253538D8598FEFFFF680000004050FFD783F8FF8945F40F842F0100005353536A0253FF75FCFF15002040005353536A04508945F8FF151C2040008BF8C745FC010000008D47018B0881F94D5A9A00740881F94D5A9000750680780403740DFF45FC40817DFC008000007CDB8D4DF0535168
InstallShieldStub2003打包工具的特征码为:
signature=558BEC6AFF68C83B420068??B8410064A100000000506489250000000083EC585356578965E8FF15C031420033D28AD48915??EB42008BC881E1FF000000890D??EB4200C1E10803CA890D??EB4200C1E810A3??EB42006A01E8C01C00005985C075086A;
除了上述举例的两个打包工具,其他打包工具都有对应的特征码,可在服务端构建特征码数据库,存储各个打包工具的名称、版本及其对应的特征码。
软件安装包也有可能不是采用第三方打包工具进行打包制作,而是由软件厂商采用其自行开发的打包工具进行制作打包的,则在客户端需采用模拟安装的方式自动安装,采用如图4所示的方法编制安装脚本,包括如下步骤:
S41、当在所述文件中没有检测到所述第一特征码时,判断所述待安装软件不是采用第三方打包工具进行打包,运行所述安装包;
S42、监控所述安装包运行时生成的安装界面;
S43、监控在所述安装界面上输入的按键操作;
S44、将所述安装界面对应的按键操作记录在所述安装脚本中;
本实施例中,由于软件安装包采用的打包工具未知,无法确定软件安装包中是否包含插件;因此需要预先运行安装包,判断安装过程中在各个安装界面中是否需要进行去除插件安装的操作。
首先,在所述文件中没有检测到所述第一特征码,从而确定该软件安装包不是采用第三方打包工具进行打包,之后可由技术人员运行安装包,手动进行去除插件的安装操作,将完整的操作过程记录下来,写入安装脚本中。
安装包在手动安装时,会生成不同的安装界面,包括供用户选择是否同意软件协议的界面、供用户选择安装路径的界面、以及供用户选择是否安装插件的界面等等多个安装界面,在安装过程中,需在安装界面上进行相应选择的鼠标点击事件或键盘输入时间等按键操作;
具体的,需监控所述安装包运行时生成的安装界面,同时监控在所述安装界面上输入的按键操作,最后添加到安装脚本中;当客户端执行该安装脚本运行安装包时,则可根据安装脚本中的安装命令,在各个所述安装界面中执行对应的按键操作,从而推动自动安装的执行。
例如,如果当前安装界面需要搜索安装程序的指定窗口或控件,可使用FindWindow等有关窗口查找的API作为安装命令查找到需要操作的窗口或控件。
如果当前安装界面中要求对按钮进行点击,可使用SendMessage族函数对按钮发送WM_LBUTTONDOWN和WM_LBUTTONUP消息,模拟一次用户点击,其对应的安装命令可为:
<Type>
<![CDATA[Click]]>
</Type>。
如果安装脚本中要求修改安装路径,则使用SendMessage族函数发送WM_SETTEXT消息修改安装路径,其对应的安装命令可为:
<Type>
<![CDATA[Edit]]>
</Type>。
如果当前安装界面出现插件安装,则使用SendMessage族函数发送BM_SETCHECK消息作为安装命令去除插件勾选框的勾选,并且会再次进行检查,确保插件的安装会被禁止,其对应的安装命令可为:
<Type>
<![CDATA[Click]]>
</Type>
<Type>
<![CDATA[Check]]>
</Type>。
在一较佳实施例中,还可包括在所述软件安装后,检测是否安装了插件的步骤;本实施例中,在软件安装后进一步检测系统中是否安装了插件,可用于检验手动运行安装包时按键操作是否有误,也可用于检验安装脚本中的安装命令是否正确。
具体的,如图5所示,在运行所述安装包时,还可包括如下步骤:
S51、监控注册表中记录的程序列表;
S52、根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否安装了插件;
本实施例中,注册表中记录有服务端所有已安装程序的信息,只要监控软件安装前后,注册表中的程序列表的变化,若增加了除所述待安装软件之外的其他程序,则可判断安装了插件;若只增加了所述待安装软件,则可判断没有安装插件;通过检测注册表,可提高检测速度,保证检测结果的准确性。
如图6所示,是本发明一种软件安装方法在另一实施例中的流程示意图,本实施例以客户端的处理流程为例进行说明,可包括如下步骤:
S61、生成所述待安装软件的安装请求并发送给服务端;
客户端首先可获取欲安装软件的安装包;其获取方式有多种,比如可从软件厂商获得,或者可从各种可提供软件安装包下载的服务端获得;软件一般可采用两种方式安装,包括自动安装及用户手动安装;当客户端接收到对所述待安装软件的自动安装请求时,生成安装请求发送给服务端。
S62、接收所述服务端根据所述安装请求返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端接收该安装请求,根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本;其中,安装脚本预先编制,包含了能拦截插件的安装命令。
S63、执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包;
客户端执行该安装脚本,由于该安装脚本包含了能拦截插件的安装命令,因此执行该安装脚本,根据该安装脚本运行所述软件包,从而能自动拦截插件。
本实施例中,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤,提高了处理效率;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
在一较佳实施例中,在运行所述待安装软件的安装包时,如图7所示,可包括如下的检测是否成功拦截插件的步骤:
S71、监控注册表中记录的程序列表;
S72、根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否成功拦截插件并反馈给所述服务端。
本实施例中,注册表中记录有客户端所有已安装程序的信息,只要监控软件安装前后,注册表中的程序列表的变化,若增加了除所述待安装软件之外的其他程序,则可判断安装了插件;若只增加了所述待安装软件,则可判断没有安装插件;通过检测注册表,可提高检测速度,保证检测结果的准确性。通过在软件安装之后,检测是否成功拦截插件并生成反馈信息发送给所述服务端,可供服务端检验安装脚本是否有漏洞,进一步帮助技术人员完善所述安装脚本。
在一较佳实施例中,在执行所述安装脚本时,还包括步骤:创建虚拟桌面,在所述虚拟桌面中根据所述安装脚本中的安装命令,运行所述安装包;可有效地避免用户的误操作,也可避免用户在当前桌面上的任何操作不会被打断。
接下来再通过一实施例阐述本发明。
如图8所示是本发明方法在另一个实施例的流程示意图,本实施例以客户端和服务端两端交互为例进行说明,可包括如下步骤:
S81、客户端获取待安装软件的安装包;
S82、客户端生成所述待安装软件的安装请求并发送给服务端;
S83、服务端接收客户端发送的对待安装软件的安装请求;
S84、服务端根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
S85、服务端发送所述安装脚本至所述客户端;
S86、客户端接收所述安装脚本;
S87、客户端执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包;
本实施例中,客户端获取欲安装软件的安装包;其获取方式有多种,比如可从软件厂商获得,或者可从各种可提供软件安装包下载的服务端获得;当客户端接收到对所述待安装软件的自动安装请求时,将所述安装请求发送给服务端;服务端接收该安装请求,根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本并发送给客户端;其中,安装脚本预先编制,包含了能拦截插件的安装命令;客户端接收并执行该安装脚本,由于该安装脚本包含了能拦截插件的安装命令,因此执行该安装脚本,根据该安装脚本运行所述软件包,从而能自动拦截插件。
如图9所示,是本发明一种软件安装系统在一实施例中的结构示意图,本实施例以服务端为例进行说明,可包括:
请求接收模块91,用于接收客户端发送的对待安装软件的安装请求;
服务端接收来自客户端的安装请求,该安装请求是由客户端对待安装的软件进行自动安装时,触发并发送的安装请求。
查找模块92,用于根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端接收该安装请求,安装请求中可记录有所述待安装软件的名称及版本号,服务端则可根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本;其中,安装脚本预先编制,包含了能拦截插件的安装命令;一般的软件安装包中,除了主程序外,经常还附带有软件厂商提供的其他应用程序,本实施例中的插件,即是指软件安装包中附带的除了主程序之外,软件厂商添加的其他功能的应用程序;
脚本是指使用特定的描述性语言,按一定格式编写的可执行文件;本实施例中的安装脚本,也即是包含多条安装命令的文件,在执行时可翻译成操作系统可识别的指令,根据指令实现对软件安装包的运行操作。
脚本发送模块93,用于发送所述安装脚本至所述客户端供所述客户端执行;
本实施例中,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤,提高了处理效率;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
对于安装脚本中的安装命令,可包括预设的静默安装命令,所述安装命令包括预设的静默安装命令,如图10所示是本系统在另一实施例的结构示意图,可包括:
读取模块101,用于读取预设的所述软件的安装包中的文件;
第一判断模块102,用于根据所述安装包中的文件,当判断所述待安装软件采用预设的第三方打包工具进行打包时,获取预设的与所述第三方打包工具对应的静默安装命令;
第一添加模块103,用于将所述静默安装命令添加到所述安装脚本中;
根据本发明的一个实施例,可预先获取各种常用软件的安装包,对安装包进行分析处理,预先编制好安装脚本;服务端可构建一安装脚本数据库,存储有常用软件的名称、版本号及其对应的安装脚本。
制作安装程序时,需要采用打包工具对制作好的文件进行打包,常用的制作安装程序的软件有:MicrosoftWindowsInstaller、Windows补丁包、InstallShield、InstallShieldwithMSI、WISEInstaller、InnoSetup和NullSoftInstallationSystem等第三方打包工具;第三方打包工具多有能支持静默安装且具有自动拦截插件的功能,因此,若检测到软件安装包采用第三方打包工具进行打包时,则可根据预存的第三方打包工具及其静默安装命令的对应关系,获取第三方打包工具的静默安装命令,作为所述安装命令记录在到安装脚本中。
例如,WISEInstaller打包工具,其静默安装命令为“/s”,执行该命令可实现对采用WISEInstaller打包工具打包的软件进行静默安装;
InnoSetup打包工具,其静默安装命令为“setup.exe/sp-/silent/norestart”,执行该命令可实现对采用InnoSetup打包工具打包的软件进行静默安装;
NullSoftInstallationSystem打包工具,其静默安装命令为“/S”,执行该命令可实现对采用NullSoftInstallationSystem打包工具打包的软件进行静默安装。
根据获取到的第三方打包工具对应的静默安装命令,将静默安装命令记录到安装脚本中,下面是一个安装脚本中静默安装命令的实施例:
其中,安装命令“<![CDATA[/S"/D=${InstallPath}\Tencent\QQLive"]]>”中,“/S”即为静默安装命令,"/D=${InstallPath}\Tencent\QQLive"表示指定的安装路径。
具体的,如何判断软件安装包是否采用第三方打包工具进行打包,如图11所示是本系统在另一实施例的结构示意图,可包括:
特征码检测模块111,用于根据所述安装包中的文件,检测是否包含有第一特征码;其中,所述第一特征码为预设的与所述第三方打包工具对应的特征码;
第二判断模块112,用于当检测到包含有所述第一特征码时,判断所述待安装软件采用第三方打包工具进行打包;
第三方打包工具具有特定的特征码,在软件制作打包时,在软件安装包中某些文件的程序入口部分会附带有上述的特征码;因此扫描软件安装包的文件,检测所述文件是否包含有特征码,根据预存的与第三方打包工具及其特征码的对应关系,则可判断出该软件安装包是否采用第三方打包工具进行打包。
例如,WiseInstallerStub打包工具的特征码为:
signature=558BEC81EC780500005356BE04010000578D8594FDFFFF5633DB5053FF15342040008D8594FDFFFF56508D8594FDFFFF50FF15302040008B3D2C20400053536A03536A018D8594FDFFFF680000008050FFD783F8FF8945FC0F847B0100008D8590FCFFFF5056FF15282040008D8598FEFFFF50538D8590FCFFFF681030400050FF15242040005368800000006A0253538D8598FEFFFF680000004050FFD783F8FF8945F40F842F0100005353536A0253FF75FCFF15002040005353536A04508945F8FF151C2040008BF8C745FC010000008D47018B0881F94D5A9A00740881F94D5A9000750680780403740DFF45FC40817DFC008000007CDB8D4DF0535168
InstallShieldStub2003打包工具的特征码为:
signature=558BEC6AFF68C83B420068??B8410064A100000000506489250000000083EC585356578965E8FF15C031420033D28AD48915??EB42008BC881E1FF000000890D??EB4200C1E10803CA890D??EB4200C1E810A3??EB42006A01E8C01C00005985C075086A;
除了上述举例的两个打包工具,其他打包工具都有对应的特征码,可在服务端构建特征码数据库,存储各个打包工具的名称、版本及其对应的特征码。
软件安装包也有可能不是采用第三方打包工具进行打包制作,而是由软件厂商采用其自行开发的打包工具进行制作打包的,则在客户端需采用模拟安装的方式自动安装,如图12所示是本系统在另一实施例的结构示意图,所述软件安装系统还可包括:
运行模块121,用于当在所述文件中没有检测到所述第一特征码时,判断所述待安装软件不是采用第三方打包工具进行打包,运行所述安装包;
界面监控模块122,用于监控所述安装包运行时生成的安装界面;
按键监控模块123,用于监控在所述安装界面上输入的按键操作;
记录模块124,用于将所述安装界面对应的按键操作记录在所述安装脚本中;
本实施例中,由于软件安装包采用的打包工具未知,无法确定软件安装包中是否包含插件;因此需要预先运行安装包,判断安装过程中在各个安装界面中是否需要进行去除插件安装的操作。
首先,在所述文件中没有检测到所述第一特征码,从而确定该软件安装包不是采用第三方打包工具进行打包,之后可由技术人员运行安装包,手动进行去除插件的安装操作,将完整的操作过程记录下来,写入安装脚本中。
安装包在手动安装时,会生成不同的安装界面,包括供用户选择是否同意软件协议的界面、供用户选择安装路径的界面、以及供用户选择是否安装插件的界面等等多个安装界面,在安装过程中,需在安装界面上进行相应选择的鼠标点击事件或键盘输入时间等按键操作;
具体的,需监控所述安装包运行时生成的安装界面,同时监控在所述安装界面上输入的按键操作,最后生成模拟安装命令添加到安装脚本中;当客户端执行该安装脚本运行安装包时,则可根据安装脚本中的安装命令,在各个所述安装界面中执行对应的按键操作,从而推动自动安装的执行。
例如,如果当前安装界面需要搜索安装程序的指定窗口或控件,可使用FindWindow等有关窗口查找的API作为安装命令查找到需要操作的窗口或控件。
如果当前安装界面中要求对按钮进行点击,可使用SendMessage族函数对按钮发送WM_LBUTTONDOWN和WM_LBUTTONUP消息,模拟一次用户点击,其对应的安装命令可为:
<Type>
<![CDATA[Click]]>
</Type>。
如果安装脚本中要求修改安装路径,则使用SendMessage族函数发送WM_SETTEXT消息修改安装路径,其对应的安装命令可为:
<Type>
<![CDATA[Edit]]>
</Type>。
如果当前安装界面出现插件安装,则使用SendMessage族函数发送BM_SETCHECK消息作为安装命令去除插件勾选框的勾选,并且会再次进行检查,确保插件的安装会被禁止,其对应的安装命令可为:
<Type>
<![CDATA[Click]]>
</Type>
<Type>
<![CDATA[Check]]>
</Type>。
在一较佳实施例中,还可包括第一检测模块,用于所述运行模块在运行所述安装包时,监控注册表中记录的程序列表;根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否安装了插件;本实施例中,在软件安装后进一步检测系统中是否安装了插件,可用于检验手动运行安装包时按键操作是否有误,也可用于检验安装脚本中的安装命令是否正确。
本实施例中,注册表中记录有服务端所有已安装程序的信息,只要监控软件安装前后,注册表中的程序列表的变化,若增加了除所述待安装软件之外的其他程序,则可判断安装了插件;若只增加了所述待安装软件,则可判断没有安装插件;通过检测注册表,可提高检测速度,保证检测结果的准确性。
如图13所示,是本发明一种软件安装系统在另一实施例中的结构示意图,本实施例以客户端的处理流程为例进行说明,可包括
请求生成模块131,用于生成所述待安装软件的安装请求并发送给服务端;
客户端可先获取欲安装软件的安装包;其获取方式有多种,比如可从软件厂商获得,或者可从各种可提供软件安装包下载的服务端获得。软件一般可采用两种方式安装,包括自动安装及用户手动安装;当客户端接收到对所述待安装软件的自动安装请求时,生成所述安装请求发送给服务端。
脚本接收模块132,用于接收所述服务端根据所述安装请求返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端接收该安装请求,根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本;其中,安装脚本预先编制,包含了能拦截插件的安装命令。
脚本执行模块133,用于执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包;
客户端执行该安装脚本,由于该安装脚本包含了能拦截插件的安装命令,因此执行该安装脚本,根据该安装脚本运行所述软件包,从而能自动拦截插件。
本实施例中,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤,提高了处理效率;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
在一较佳实施例中,还包括反馈信息发送模块,用于在所述脚本执行模块运行所述安装包时,监控注册表中记录的程序列表;根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否成功拦截插件;
本实施例在安装完所述软件后,检测是否成功拦截插件并生成反馈信息发送给所述服务端,以供服务端检验安装脚本是否有漏洞,进一步帮助技术人员完善所述安装脚本。
注册表中记录有客户端所有已安装程序的信息,只要监控软件安装前后,注册表中的程序列表的变化,若增加了除所述待安装软件之外的其他程序,则可判断安装了插件;若只增加了所述待安装软件,则可判断没有安装插件;通过检测注册表,可提高检测速度,保证检测结果的准确性。
在一较佳实施例中,还包括创建模块,用于所述脚本执行模块在执行所述安装脚本时,创建虚拟桌面,在所述虚拟桌面中根据所述安装脚本中的安装命令,运行所述安装包;可有效地避免用户的误操作,也可避免用户在当前桌面上的任何操作不会被打断。
接下来再通过一实施例阐述本发明。
如图14所示是本发明系统在另一实施例的结构示意图,本实施例以客户端和服务端两端交互为例进行说明,客户端可包括请求生成模块141,脚本接收模块142和脚本执行模块143,服务端包括请求接收模块144,查找模块145,脚本发送模块146,具体的数据交互过程如下:
客户端的请求生成模块141获取所述待安装软件的安装请求并发送给服务端的脚本接收模块;
服务端的请求接收模块144接收客户端发送的对待安装软件的安装请求;
服务端的查找模块145根据所述安装请求查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端的脚本发送模块146发送所述安装脚本至所述客户端的脚本接收模块;
客户端的脚本接收模块142接收所述安装脚本;
客户端的脚本执行模块143执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包;
本实施例中,客户端获取欲安装软件的安装包;其获取方式有多种,比如可从软件厂商获得,或者可从各种可提供软件安装包下载的服务端获得;当客户端接收到对所述待安装软件的自动安装请求时,将所述安装请求发送给服务端;服务端接收该安装请求,根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本并发送给客户端;其中,安装脚本预先编制,包含了能拦截插件的安装命令;客户端接收并执行该安装脚本,由于该安装脚本包含了能拦截插件的安装命令,因此执行该安装脚本,根据该安装脚本运行所述软件包,从而能自动拦截插件。
本发明软件安装方法和系统,当客户端对待安装软件采用自动安装方式时,发送安装请求,服务端接收安装请求,则根据预存的软件安装包与安装脚本的对应关系,获取预设的安装脚本,该安装脚本中包含有能拦截插件的安装命令,客户端则根据安装脚本运行安装包;一方面,客户端从各种渠道获得软件安装包,服务端只要在接收到安装请求时再下发对应的安装脚本,客户端能获取到最新版本的安装脚本,减少了客户端被安装插件的风险,并且服务端不需要预先将安装脚本打包在软件安装包中,减少了处理步骤,提高了处理效率;安装脚本中包含了预先编制好的能拦截插件的安装命令,能供客户端在选择自动安装时采用获取到的安装脚本运行软件安装包,从而达到拦截插件的目的。
本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
图15为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图15中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图15所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于本发明的软件安装方法和系统。
如上面详细描述的,适用于本发明的计算机系统1000能执行软件安装方法和系统的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的软件安装方法和系统。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种软件安装方法,其特征在于,包括如下步骤:
服务端接收客户端发送的对待安装软件的安装请求;其中,所述安装请求是由客户端对待安装软件进行自动安装时触发并发送的安装请求,所述客户端预存有所述待安装软件的安装包;
服务端根据所述安装请求和预存的软件安装包与安装脚本的对应关系,查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
服务端发送所述安装脚本至所述客户端供所述客户端执行,客户端对待安装软件的安装包进行安装。
2.根据权利要求1所述的软件安装方法,其特征在于,所述安装命令包括预设的静默安装命令,所述软件安装方法还包括步骤:
读取预设的所述软件的安装包中的文件;
根据所述安装包中的文件,当判断所述待安装软件采用预设的第三方打包工具进行打包时,获取预设的与所述第三方打包工具对应的静默安装命令;
将所述静默安装命令添加到所述安装脚本中。
3.根据权利要求2所述的软件安装方法,其特征在于,所述判断所述待安装软件采用预设的第三方打包工具进行打包的步骤包括:
根据所述安装包中的文件,检测是否包含有第一特征码;其中,所述第一特征码为预设的与所述第三方打包工具对应的特征码;
若是,则判断所述待安装软件采用第三方打包工具进行打包。
4.根据权利要求3所述的软件安装方法,其特征在于,还包括步骤:
当在所述文件中没有检测到所述第一特征码时,判断所述待安装软件不是采用第三方打包工具进行打包,运行所述安装包;
监控所述安装包运行时生成的安装界面;
监控在所述安装界面上输入的按键操作;
将所述安装界面对应的按键操作记录在所述安装脚本中。
5.根据权利要求4所述的软件安装方法,其特征在于,在运行所述安装包时,还包括如下步骤:
监控注册表中记录的程序列表;
根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否安装了插件。
6.一种软件安装方法,其特征在于,包括如下步骤:
客户端生成待安装软件的安装请求并发送给服务端;其中,所述安装请求是对待安装软件进行自动安装时触发并发送的安装请求,所述客户端预存有所述待安装软件的安装包;
客户端接收所述服务端根据所述安装请求和预存的软件安装包与安装脚本的对应关系返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
客户端执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包。
7.根据权利要求6所述的软件安装方法,其特征在于,在运行所述待安装软件的安装包时,还包括步骤:
监控注册表中记录的程序列表;
根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否成功拦截插件并反馈给所述服务端。
8.根据权利要求6所述的软件安装方法,其特征在于,在执行所述安装脚本时,还包括步骤:创建虚拟桌面,在所述虚拟桌面中根据所述安装脚本中的安装命令,运行所述安装包。
9.一种软件安装系统,其特征在于,应用于服务端,包括:
请求接收模块,用于接收客户端发送的对待安装软件的安装请求;其中,所述安装请求是由客户端对待安装软件进行自动安装时触发并发送的安装请求,所述客户端预存有所述待安装软件的安装包;
查找模块,用于根据所述安装请求和预存的软件安装包与安装脚本的对应关系,查找预设的与所述软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
脚本发送模块,用于发送所述安装脚本至所述客户端供所述客户端执行,客户端对待安装软件的安装包进行安装。
10.根据权利要求9所述的软件安装系统,其特征在于,所述安装命令包括预设的静默安装命令,所述软件安装系统还包括:
读取模块,用于读取预设的所述软件的安装包中的文件;
第一判断模块,用于根据所述安装包中的文件,当判断所述待安装软件采用预设的第三方打包工具进行打包时,获取预设的与所述第三方打包工具对应的静默安装命令;
第一添加模块,用于将所述静默安装命令添加到所述安装脚本中。
11.根据权利要求10所述的软件安装系统,其特征在于,还包括:
特征码检测模块,用于根据所述安装包中的文件,检测是否包含有第一特征码;其中,所述第一特征码为预设的与所述第三方打包工具对应的特征码;
第二判断模块,用于当检测到包含有所述第一特征码时,判断所述待安装软件采用第三方打包工具进行打包。
12.根据权利要求11所述的软件安装系统,其特征在于,还包括:
运行模块,用于当在所述文件中没有检测到所述第一特征码时,判断所述待安装软件不是采用第三方打包工具进行打包,运行所述安装包;
界面监控模块,用于监控所述安装包运行时生成的安装界面;
按键监控模块,用于监控在所述安装界面上输入的按键操作;
记录模块,用于将所述安装界面对应的按键操作记录在所述安装脚本中。
13.根据权利要求12所述的软件安装系统,其特征在于,还包括第一检测模块,用于所述运行模块在运行所述安装包时,监控注册表中记录的程序列表;根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否安装了插件。
14.一种软件安装系统,其特征在于,应用于客户端,包括:
请求生成模块,用于生成待安装软件的安装请求并发送给服务端;其中,所述安装请求是对待安装软件进行自动安装时触发并发送的安装请求,所述客户端预存有所述待安装软件的安装包;
脚本接收模块,用于接收所述服务端根据所述安装请求和预存的软件安装包与安装脚本的对应关系返回的与所述待安装软件对应的安装脚本;其中,所述安装脚本中包含有拦截插件的安装命令;
脚本执行模块,用于执行所述安装脚本,根据所述安装脚本中的安装命令,运行所述待安装软件的安装包。
15.根据权利要求14所述的软件安装系统,其特征在于,还包括反馈信息发送模块,用于在所述脚本执行模块运行所述安装包时,监控注册表中记录的程序列表;根据所述注册表中的程序列表在所述安装包运行前后的变化,判断是否成功拦截插件。
16.根据权利要求14所述的软件安装系统,其特征在于,还包括创建模块,用于所述脚本执行模块在执行所述安装脚本时,创建虚拟桌面,在所述虚拟桌面中根据所述安装脚本中的安装命令,运行所述安装包。
CN201410248236.7A 2014-06-05 2014-06-05 软件安装方法和系统 Active CN104346195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410248236.7A CN104346195B (zh) 2014-06-05 2014-06-05 软件安装方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410248236.7A CN104346195B (zh) 2014-06-05 2014-06-05 软件安装方法和系统

Publications (2)

Publication Number Publication Date
CN104346195A CN104346195A (zh) 2015-02-11
CN104346195B true CN104346195B (zh) 2016-05-25

Family

ID=52501885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410248236.7A Active CN104346195B (zh) 2014-06-05 2014-06-05 软件安装方法和系统

Country Status (1)

Country Link
CN (1) CN104346195B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557379B (zh) * 2015-09-30 2021-05-18 北京奇虎科技有限公司 一种静默安装包的生成方法和装置
CN105426211A (zh) * 2015-11-26 2016-03-23 北京慧眼智行科技有限公司 网站运行环境的配置方法及系统
CN106293842B (zh) * 2016-08-12 2020-04-03 新华三技术有限公司 一种软件安装方法及装置
CN106648651B (zh) * 2016-12-15 2019-11-08 广州视源电子科技股份有限公司 一种安装包的制作方法及装置
CN107678751B (zh) * 2017-03-13 2020-06-09 平安科技(深圳)有限公司 一种虚拟机软件部署方法及终端
CN110187911B (zh) * 2019-05-08 2023-07-25 杭州迪普科技股份有限公司 客户端软件生成方法、装置、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012826A (zh) * 2010-11-19 2011-04-13 奇智软件(北京)有限公司 一种软件智能安装/升级的方法及系统
CN102591694A (zh) * 2012-01-18 2012-07-18 深圳市同洲视讯传媒有限公司 一种交互式电视点播系统的安装部署方法及装置
CN102955689A (zh) * 2011-08-23 2013-03-06 腾讯科技(深圳)有限公司 软件安装包的制作方法和软件安装包装置
CN103500114A (zh) * 2013-10-12 2014-01-08 北京奇虎科技有限公司 一种应用程序的安装方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012826A (zh) * 2010-11-19 2011-04-13 奇智软件(北京)有限公司 一种软件智能安装/升级的方法及系统
CN102955689A (zh) * 2011-08-23 2013-03-06 腾讯科技(深圳)有限公司 软件安装包的制作方法和软件安装包装置
CN102591694A (zh) * 2012-01-18 2012-07-18 深圳市同洲视讯传媒有限公司 一种交互式电视点播系统的安装部署方法及装置
CN103500114A (zh) * 2013-10-12 2014-01-08 北京奇虎科技有限公司 一种应用程序的安装方法及装置

Also Published As

Publication number Publication date
CN104346195A (zh) 2015-02-11

Similar Documents

Publication Publication Date Title
CN104346195B (zh) 软件安装方法和系统
CN107943683B (zh) 一种测试脚本生成方法、装置、电子设备及存储介质
EP4046000A1 (en) Methods and systems for integrated development environment editor support with a single code base
CN105787077A (zh) 数据同步方法和装置
US20100251133A1 (en) Method and system for providing a user interface in a computer
US11169792B2 (en) Method and apparatus for generating patch
WO2011130651A1 (en) Cross-platform application framework
CN107622200A (zh) 应用程序的安全性检测方法及装置
WO2014089734A1 (zh) 终端和应用程序恢复方法
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN106445548B (zh) 一种测试包下发方法和装置
WO2013182051A1 (zh) 软件安装方法、终端、系统以及计算机存储介质
CN104268473A (zh) 应用程序检测方法和装置
CN109491646B (zh) 一种消息录入方法、装置、电子设备及可读介质
CN110889263A (zh) 文档的待办事项生成方法、装置、设备及存储介质
CN103324505A (zh) 在集群系统和云计算系统中部署gpu开发环境的方法
CN111723002A (zh) 一种代码调试方法、装置、电子设备及存储介质
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
CN104737128A (zh) 用于多用户账户的二进制的重新使用
CN105245581A (zh) 一种应用程序传输方法及装置
CN110119386A (zh) 数据处理方法、数据处理装置、介质和计算设备
CN111736825B (zh) 一种信息展示方法、装置、设备和存储介质
US8862548B2 (en) File system cloning between a target device and a host device
CN104063306B (zh) 智能终端软件测试中的自动登录方法、装置和系统
CN109828781B (zh) 用于问题排查的源码版本定位方法、装置、介质和设备

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