CN104536788B - 使应用的安装自动化的系统和方法 - Google Patents

使应用的安装自动化的系统和方法 Download PDF

Info

Publication number
CN104536788B
CN104536788B CN201410832012.0A CN201410832012A CN104536788B CN 104536788 B CN104536788 B CN 104536788B CN 201410832012 A CN201410832012 A CN 201410832012A CN 104536788 B CN104536788 B CN 104536788B
Authority
CN
China
Prior art keywords
installation
application
window
installation procedure
windows
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
CN201410832012.0A
Other languages
English (en)
Other versions
CN104536788A (zh
Inventor
安东·M·伊万诺夫
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN104536788A publication Critical patent/CN104536788A/zh
Application granted granted Critical
Publication of CN104536788B publication Critical patent/CN104536788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

公开了用于使应用的安装自动化的系统、方法和计算机程序产品。在一方面,系统发起软件应用的应用安装程序;标识应用安装程序的活动窗口中的控制元素,其中控制元素至少包括负责将活动窗口转换到应用安装程序的另一个窗口的用户界面(UI)元素;转换到应用安装程序的其他窗口并且标识应用安装程序的所有其他窗口中的控制元素直到应用被安装;生成用于应用的自动安装规则,所述自动安装规则自动地激活应用安装程序的一个或多个窗口和所述窗口的一个或多个控制元素以安装应用而无需用户的参与。

Description

使应用的安装自动化的系统和方法
相关申请的交叉引用
本申请根据美国法典第35卷第119(a)-(d)条要求享有于2013年12月27日提交的2013158139号俄罗斯申请的优先权的权益,其通过引用并入本文。
技术领域
本公开总地涉及软件领域,并且更具体地,涉及用于使应用的安装自动化的系统和方法。
背景技术
目前,可以以数种方式来解决在用户的计算机上安装软件(SW)的问题。例如,首先可以手动安装软件的每个分布,但是它具有若干缺点,其中之一是需要管理员权限、用户拥有足够技能以及一定量的时间用于安装。在公司网络的环境下,这类职责由管理员来实施,考虑到大量的计算机这使得SW安装的手动方法不可接受。
安装SW的其他方式可以包括使用具有已安装应用的操作系统的镜像、或以自动模式安装SW。后一种技术要求当无需用户的参与时选择以静默或安静模式安装应用,或使用指导用户的动作用于它们在未来的复制的特殊程序。例如,使用程序自动点击器打字机(Auto Clicker Typer)可以使指定按压窗口中的某些按钮(诸如“下一步>(Next>)”或“完成(Finish)”)成为可能。
然而,在若干情况下,以静默模式安装SW可能是无法达到的,或者在安装期间可能需要实施若干动作,所述动作可能涉及计算机的软件和硬件(诸如所要求的预安装的.NET框架包(.NET Framework package)的存在或应用功能的硬件支持的验证)。用户一方的动作的再一个示例是对用户协议(最终用户许可协议,或EULA)的条款的强制性同意。例如可能存在在出现错误(诸如由于缺少对EULA的同意)时采用随后重新开始安装过程以解决错误来将错误纳入考虑的安装SW的方法。
虽然可能存在相当大量的工具用于使SW的安装自动化,但是它们全都或多或少基于已有应用的分析及其安装方法。当出现新的SW或安装过程改变时,需要人为参与以纠正自动安装过程。因此,需要创建不管安装条件如何也能够实行任何给定SW的自动安装而无需人为参与的解决方案。
对相关技术的分析得出使用现有技术是低效的并且在某些情况下不可能使用现有技术的结论,通过本发明,具体地,通过使应用的安装过程自动化的方法补救现有技术的缺点。
发明内容
本发明的技术结果在于通过使用用于应用安装程序的安装规则使应用的自动安装成为可能,该安装规则在安装规则的创建的方法的帮助下被创建,其中安装规则包括为了安装的成功完成在安装程序的工作期间的控制元素的激活顺序。
根据一方面,用于使应用的安装自动化的方法包括由处理器发起(launch)软件应用的应用安装程序;标识应用安装程序的活动窗口中的控制元素,其中控制元素至少包括负责将活动窗口转换到应用安装程序的另一个窗口的用户界面(UI)元素;转换到应用安装程序的其他窗口并且标识应用安装程序的所有其他窗口中的控制元素直到应用被安装;以及生成用于应用的自动安装规则,所述自动安装规则自动地激活应用安装程序的一个或多个窗口和所述窗口的一个或多个控制元素以安装应用而无需用户的参与。
根据另一方面,用于使应用的安装自动化的系统包括处理器,其配置为:发起软件应用的应用安装程序;标识应用安装程序的活动窗口中的控制元素,其中控制元素至少包括负责将活动窗口转换到应用安装程序的另一个窗口的用户界面(UI)元素;转换到应用安装程序的其他窗口并且标识应用安装程序的所有其他窗口中的控制元素直到应用被安装;以及生成用于应用的自动安装规则,所述自动安装规则自动地激活应用安装程序的一个或多个窗口和所述窗口的一个或多个控制元素以安装应用而无需用户的参与。
根据又一方面,用于使应用的安装自动化的、存储在非暂时性计算机可读介质上的计算机程序产品包括计算机可执行指令,其用于:发起软件应用的应用安装程序;标识应用安装程序的活动窗口中的控制元素,其中控制元素至少包括负责将活动窗口转换到应用安装程序的另一个窗口的用户界面(UI)元素;转换到应用安装程序的其他窗口并且标识应用安装程序的所有其他窗口中的控制元素直到应用被安装;生成用于应用的自动安装规则,所述自动安装规则自动地激活应用安装程序的一个或多个窗口和所述窗口的一个或多个控制元素以安装应用而无需用户的参与。
上述示范性方面的简化概要用来提供本发明的基本理解。该概要不是所有预期方面的广泛概述,并且意在既不标识所有方面的关键或决定性元素,也不划定本发明的任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面作为下面跟随的本发明的更详细描述的前序。为了完成前述事项,本发明的一个或多个方面包括权利要求中所描述和特别指出的特征。
附图说明
附图并入本说明书并构成本说明书的一部分,其示出本发明的一个或多个示范性方面,并且与详细描述一起用来解释它们的原理和实现方案。
图1示出根据本发明的方面的、用于使应用的安装自动化的示范性方法的流程图。
图2示出根据本发明的方面的虚拟机软件(VMware)工作站SW安装程序屏幕的示例。
图3示出根据本发明的方面的、安装程序之一的界面的窗口之间的示范性移动的流程图。
图4示出根据本发明的方面的、为了发现控制元素而分析安装程序窗口的示范性方法的流程图。
图5示出根据本发明的方面的、用于使应用的安装自动化的示范性系统的框图。
图6示出根据本发明的方面的通用计算机系统的示例的框图。
具体实施方式
本文在用于使应用的安装自动化的系统、方法和计算机程序产品的上下文中描述了示范性方面。本领域普通技术人员将理解下面的描述仅是例示性的并且不意在以任何方式加以限制。受益于本公开的本领域技术人员将容易想到其他方面。现在将详细参考如附图中所示出的示范性方面的实现方案。将尽可能贯穿附图和下面的描述使用相同的参考标记来指代相同或相似项。
根据本发明的一方面,安装包(以下简称为包或安装程序)除了软件分发包之外通常还可以包含某元数据集,所述元数据集可以包括包的全名、版本号、包的描述、开发者的姓名、检验和以及其他信息。在操作系统(OS)中的SW的安装通常由包控制系统(例如,在Unix或Mac OS系统中)或操作系统的分离组件(用于Windows系列系统的Windows安装程序)来进行。在SW的安装期间,可能要求与选择SW组件、同意用户协议(EULA)以及其他事项有关的用户动作。图2示出根据本发明的方面的VMware工作站的SW安装程序屏幕的示例。如所示的,用户可访问的窗口的活动界面元素(以下简称为元素)可以是按钮“下一步>(Next>)”、“取消(Cancel)”、“<上一步(<Back)”以及单选按钮(RadioButton)类型的元素。用于其他SW安装程序的窗口还可以包含其他类型的元素,诸如复选框、组合框、列表框、图像、标签、文本框、选项卡(TabControl)、网格、堆栈面板以及其他。应该注意,元素可能是活动的(用户可以与之进行交互)或非活动的(例如,“下一步>”按钮可能被阻塞直到用户同意用户协议的条款)。反过来,还可以在元素之中标识负责转换到其他窗口或解阻塞(unblock)窗口中的其他元素的控制元素。
通过选择(例如通过采用鼠标按钮点击来激活)安装程序界面的不同元素,用户可以选择必要的SW选项、在安装的不同阶段之间转换、终止安装等等。图3示出根据本发明的方面的、安装程序之一的界面窗口之间的示范性移动的流程图。经编号的圆圈示出安装程序的窗口(照例来说,窗口还反映SW安装中的某些阶段),并且指示相应按钮的箭头示出窗口之间的移动。例如,按压按钮“我同意(I agree)”可以导致在窗口3和4之间的转换,而按压窗口1、5、6、7中的按钮“取消”可以导致在窗口2中的安装过程的终止。如所示的,选择系列按钮“下一步”、“我同意”、“安装(Install)”的顺序可以导致SW成功安装在计算机上。在本发明的上下文中,导致SW的成功安装的选择按钮(或选择其他界面元素)的顺序将被称为安装规则。
本发明可以针对不同的安装程序使用安装规则用于其自动安装而无需用户参与的目的。
图1示出根据本发明的方面的、用于使应用的安装自动化的示范性方法的流程图。在步骤100中,SW安装包可以到达(例如,可以从远程服务器或从安装CD下载)用户的计算机并且可能需要被安装。在步骤110中,可以获得用于安装包的安装规则。安装规则可以包括为了安装的成功完成在安装程序工作期间的用于控制元素(诸如一系列按钮的选择)的激活顺序。安装规则可以应用到具体安装程序(即,它将是严格指定的按钮集以供选择),或者可以是相当通用的(例如,它将足够用于许多安装程序按压“下一步>”按钮数次)。在步骤120中,可以使用安装规则来实施SW安装,在此之后在步骤130中可以存在对安装是否成功的核查。成功安装的示例可以包括但不限于下面条件中的一个或多个:
●存在文件和/或OS注册表改变;
●应用添加到添加/删除程序列表;
●在桌面上或在快速启动窗口中出现用于启动应用的图标;
●重启计算机;
●出现新的服务;
●安装新的驱动程序;
●启动来自新的可执行文件的进程;
●出现新的插件(例如,在网络浏览器中)。
如果发现安装成功,则方法可以结束于步骤140。否则,在步骤150中,可以实施安装程序的检查以凭借新的或经修正的安装规则来实行成功安装。下面呈现安装程序的检查。在步骤160中获得新的安装规则之后,方法可以返回到步骤120用于重复安装直到安装成功完成。
图4示出根据本发明的方面的、用于检查应用安装程序的示范性方法的流程图。在步骤400中,可以获得安装程序用于对其的检查,在此之后在步骤410中可以执行(例如初始化/启动)安装程序。可以将检查实施为在真实或虚拟环境(例如虚拟机、仿真器)中的启动。接下来,在步骤415中,可以针对活动元素的存在对安装程序的活动窗口实施分析。在步骤420中,可以实施对活动窗口中的控制元素的搜索,即搜索负责移动到其他窗口或解阻塞窗口中的其他元素的那些元素(诸如复选框元素,其与接受许可协议有关,使得“下一步”按钮活动,其允许安装继续)。在已经确定控制元素之后,在步骤425中可以使用其以转换到安装程序的其他窗口(图3中所示的示例)。在这些窗口中,可以重复发现控制元素的过程直到在步骤430中发现已经分析了安装程序的所有窗口。在此之后,在步骤440中,可以创建安装规则。
下面给出以xml格式所写的安装规则的示例:
<steps>
<window>
<caption>caption 1</caption>
<button>Next</button>
</window>
<window>
<caption>caption 2</caption>
<button>I agree</button>
</window>
<window>
<caption>caption 3</caption>
<button>Next</button>
</window>
<window>
<caption>caption 4</caption>
<button>Next</button>
</window>
<window>
<caption>caption 5</caption>
<button>Install</button>
</window>
<window>
<caption>caption 6</caption>
<button>Finish</button>
</window>
</steps>
使用这些和类似的规则,用户可以根据当前窗口选择真正的控制元素。
可以使用下面的标准用于创建安装规则:
●在图表上选择从安装程序的开始到结束窗口的最小路线;
●安装程序的结束窗口是在其之后在OS中文件以及可能的注册改变被确定(指示成功安装)的窗口;
●应用被添加到添加/删除程序列表;
●在桌面上或在快速启动窗口中出现用于启动应用的图标;
●重启计算机;
●出现新的服务;
●安装新的驱动程序;
●启动来自新的可执行文件的进程。
在步骤440中创建安装规则之后,可以在步骤450中验证规则。可以在用户的计算机上进行验证,并且成功的结果可以是(以上所列出的)成功安装的条件中的任何一个以及用户反馈,其可发生在步骤460中,在此之后方法可以结束于步骤470。否则,方法再次移动到步骤440以创建新的(或经修正的)安装规则。
安装规则的经修正的变体可以使得必需改变在安装程序的窗口中选择(激活)控制元素的顺序。在一方面,可以分析从开始到结束窗口的移动的流程图(例如,如图3中所示)直到找到在其之后先前已知的转换不起作用的安装程序窗口。例如,新的控制元素(诸如同意附加的协议)可能已被添加到经更改的窗口中并且可能需要被激活。因此,新的控制元素的激活对于转换可能是必要条件。
在创建安装规则中的可能的困难可以包括下面的情形:
●位置。控制元素的名称根据位置可以是不同的。安装程序的语言可以在其启动期间选择或依据计算机上的本地设置定义。为了解决这类问题,可以使用将具有不同名称的元素减少到单个通用形式的词汇。例如,可以将具有名称“下一步>”和“Далее>”的按钮保存为“下一步”按钮,指示转换到下一个窗口的功能。另一解决方案可以是,在对于不同的位置而标识符相同的情况下使用元素的标识符。
●凭借其他元素对某些元素的激活。例如,按钮“下一步>”可以被阻塞直到用户同意用户协议的条款(通常这是复选框类型的元素)。该问题的一个解决方案可以是利用窗口中的所有活动元素的随后激活和对其他元素的状态改变的跟踪而一个接着一个尝试窗口中的所有活动元素。例如,在激活一个元素之后,可以试一试窗口的所有其他元素以跟踪它们的状态的改变。首要的是,可以挑出已知为控制到其他窗口的转换或完成安装的那些元素,诸如“下一步>”、“安装”、“完成”按钮。
●非标准的控制元素,诸如图像。在这类情况下,可以在规则中指示必须被选择的图像的标识符,或甚至将指示用于选择的坐标。
可以使所创建的安装规则形式化,使得其不仅可以用于特定应用,还可以用于广泛范围的SW。例如,如果用于一个安装程序的安装规则包括按压2个“下一步>”按钮和1个“完成”按钮,而用于第二安装程序的安装规则包括按压3个“下一步>”按钮和1个“完成”按钮,则形式化可以如下:按压N个“下一步>”按钮并在最后的窗口中按压“完成”按钮。也可以以xml格式来保存这类规则。
图5示出根据本发明的方面的、用于使应用的安装自动化的示范性系统的框图。如所描绘的,系统可以包括应用安装程序500、安装模块510、检查模块520以及安装规则的数据库。安装模块510可以发起软件应用的应用安装程序500。安装模块510可以提示检查模块520检查应用安装程序500的活动窗口并标识活动窗口中的控制元素。控制元素可以包括例如负责当前活动窗口到应用安装程序500的另一个窗口的转换的用户界面(UI)元素。检查模块520可以标识控制元素。检查模块520可以随后使用控制元素转换到应用安装程序500的其他窗口,并且可以继续标识在应用安装程序500的所有其他窗口中的控制元素直到应用被安装。检查模块530可以随后生成用于应用的自动安装规则。安装规则可以例如自动地激活应用安装程序500的一个或多个窗口以及所述窗口的一个或多个控制元素以安装应用而无需用户的参与。检查模块510可以将安装规则存储在数据库530中。
一旦安装规则已被创建并被存储在数据库530中,安装模块510就可以从数据库530获得安装规则以促进经由应用安装程序500安装相同的应用或其他应用。例如,安装规则可以应用到要求控制元素的严格的选择顺序的具体的应用安装程序500,或者它可以是相当通用的并且仅要求选择“下一步>”按钮数次并且因此适用于许多其他应用。安装模块510可以使用安装规则实施应用的安装,并且可以核查安装是否成功。如果发现安装不成功,则安装模块510可以提示检查模块520分析应用安装程序500的活动窗口并且生成新的或经修正的安装规则,其可以被检查模块520再次存储在数据库530中。一经完成分析,检查模块520就可以用信号通知安装模块510其已经完成检查并且已经将新的安装规则保存在数据库530中。安装模块510可以随后通过使用新的或经修正的安装规则实行成功的安装。
图6描绘了可以用来实现所公开的用于修改软件分发包的系统和方法的计算机系统5的一个示范性方面。计算机系统5可以包括但不限于个人计算机、笔记本、平板计算机、智能电话、网络服务器、路由器或其他类型的处理设备。如所示的,计算机系统5可以包括通过系统总线10连接的一个或多个硬件处理器15、存储器20、一个或多个硬盘驱动器30、光驱35、串行端口40、图形卡45、音频卡50和网卡55。系统总线10可以是数种类型的总线结构中的任何一种,包括使用各种已知总线架构中的任何一个的存储器总线或存储器控制器、外围总线和局部总线。处理器15可以包括一个或多个酷睿2四核2.33GHz处理器或其他类型的微处理器。
系统存储器20可以包括只读存储器(ROM)21和随机存取存储器(RAM)23。存储器20可以以DRAM(动态RAM)、EPROM、EEPROM、闪存或其他类型的存储器架构来实现。ROM 21存储基本输入/输出系统22(BIOS),包含有助于诸如在启动期间在计算机系统5的模块之间转移信息的基本例程。RAM 23存储操作系统24(OS),诸如7专业版或其他类型的操作系统,其负责进程的管理和协调以及计算机系统5中的硬件资源的分配和共享。存储器20还存储应用和程序25。存储器20还存储由程序25所使用的各种运行时数据26。
计算机系统5可以进一步包括诸如串行高级技术附件硬盘驱动器(SATA HDD)的硬盘驱动器30,以及用于从可移动光盘读取或写入到可移动光盘的光盘驱动器35,诸如CD-ROM、DVD-ROM或其他类型的光学介质。驱动器30和35以及它们的相关联的计算机可读介质提供实现本文所公开的算法和方法的计算机可读指令、数据结构、应用和程序模块/子例程的非易失性存储。虽然示例性计算机系统5采用磁盘和光盘,但是本领域技术人员应该理解,在计算机系统5的可替代方面中还可以使用可以存储可由计算机系统5访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字视频光盘、RAM、ROM、EPROM以及其他类型的存储器。
计算机系统5进一步包括多个诸如通用串行总线(USB)的串行端口40,用于连接数据输入设备75,诸如键盘、鼠标、触摸板和其他。串行端口40还可以用于连接数据输出设备80,诸如打印机、扫描仪和其他,以及其他外围设备85,诸如外部数据存储设备等等。系统5还可以包括图形卡45,诸如GT 240M或其他视频卡,用于与诸如触摸屏显示器的显示器60或其他视频再现设备进行交互。系统5还可以包括音频卡50用于经由内部或外部扬声器65再现声音。此外,系统5可以包括网卡55,诸如以太网、WiFi、GSM、蓝牙或其他有线、无线或蜂窝网络接口,用于将计算机系统5连接到网络70,诸如互联网。
在各方面,本文所公开的系统和方法可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则方法可作为一个或多个指令或代码而存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储。通过示例而非限制的方式,这类计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其他类型的电、磁、或光学存储介质,或可以用来以指令或数据结构的形式携带或存储所期望的程序代码并且可由通用计算机的处理器访问的任何其他介质。
在各方面中,在本公开中以模块来描述系统和方法。如本文所使用的术语“模块”指使用硬件或作为硬件和软件的组合实现的现实世界的设备、部件、或部件的组合体(arrangement),所述使用硬件诸如通过例如专用集成电路(ASIC)或现场可编程门阵列(FPGA),所述作为硬件和软件的组合诸如通过微处理器系统和实现模块的功能性的指令集,该指令集(当被执行时)将微处理器系统变换成专用设备。模块还可以实现为上述两者的组合,某些功能由硬件单独来促进,并且其他功能由软件和硬件的组合来促进。在某些实现方案中,模块的至少一部分并且在一些情况下模块的全部可以在通用计算机(诸如上面图6中较详细描述的计算机)的处理器上执行。因此,每个模块可以以各种适当的配置实现,并且不应被限制于本文所例示的任何特定的实现方案。
为了清楚,本文没有公开方面的所有常规特征。将理解的是,在本发明的任何实际实现方案的开发中,必须做出大量的特定于实现方案的决策以达成开发者的具体目标,并且这些具体目标将针对不同的实现方案和不同的开发者而变化。将理解的是,这类开发工作可能是复杂的并且耗时的,然而尽管如此对于受益于本公开的本领域普通技术人员来说将是常规的工程任务。
此外,将理解的是,本文所使用的措辞或术语是用于描述而非限制的目的,这样使得本说明书的术语或措辞将由本领域技术人员鉴于本文所呈现的教导和指导结合相关领域的技术知识来解释。此外,除非明确照此阐述,否则不意在将本说明书或权利要求中的任何术语归于不寻常的或特殊的意义。
本文所描述的各方面包含与本文通过例示方式所提及的已知模块等同的现在和将来的已知等同物。此外,虽然已经示出和描述了方面和应用,但是对于受益于本公开的本领域技术人员来说将显而易见的是,许多比上面提及的更多修改是可能的而不脱离本文所公开的发明构思。

Claims (7)

1.一种用于在多个计算机上使应用的安装自动化的方法,所述方法包括:
由处理器发起应用安装程序,所述应用安装程序具有用于在计算机的操作系统中安装软件应用的一系列窗口;
由检查模块搜索并标识所述应用安装程序的活动窗口中的所有活动元素;
由所述检查模块激活每个经标识的活动元素并跟踪所有其他活动元素的状态的改变以标识是控制元素的活动元素,所述控制元素用于在所述计算机的所述操作系统中安装所述软件应用期间将所述活动窗口转换到所述应用安装程序的所述一系列窗口中的后一个窗口;
由所述检查模块激活所述活动窗口中的经标识的控制元素,以转换到所述应用安装程序的所述一系列窗口中的所述后一个窗口;
由所述检查模块标识所述后一个窗口中以及所述应用安装程序的所述一系列窗口中的所有其他窗口中的控制元素,以验证在所述计算机的所述操作系统中安装所述软件应用期间,每个经标识的控制元素的激活将安装期间的所述一系列窗口转换到所述一系列窗口中的最后一个窗口;以及
生成用于所述应用的自动安装规则,所述自动安装规则自动地激活所述应用安装程序的所述一系列窗口的每个窗口中的所有控制元素,以在所述多个计算机的每个操作系统中安装所述软件应用而无需用户的参与。
2.根据权利要求1所述的方法,其中所述自动安装规则包括最小系列的命令,所述命令用于激活窗口和所述窗口的控制元素以在用户设备上安装所述应用而无需所述用户的所述参与。
3.根据权利要求1所述的方法,进一步包括:
测试所生成的自动安装规则以验证所述应用被成功安装而无需所述用户的所述参与。
4.根据权利要求1所述的方法,其中一旦发生以下项中的至少一个则所述应用的所述安装被验证为是成功的:
指示所述应用的安装的操作系统注册表中的改变;
所述应用出现在添加/删除程序的列表中;
应用图标出现在桌面上或在快速启动窗口中;
重启所述应用被安装在其上的计算机;
出现新的服务、驱动程序或插件;以及
发起来自新的可执行文件的进程。
5.根据权利要求1所述的方法,其中发起所述应用安装程序包括在真实或虚拟计算机环境中发起所述应用安装程序。
6.根据权利要求1所述的方法,其中所述自动安装规则用于安装多个不同的应用。
7.根据权利要求1所述的方法,其中活动UI元素包括以下项中的至少一个:按钮、单选按钮、复选框、组合框、列表框、图像、标签、文本框、选项卡、网格和堆栈面板。
CN201410832012.0A 2013-12-27 2014-12-26 使应用的安装自动化的系统和方法 Active CN104536788B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2013158139/08A RU2568294C2 (ru) 2013-12-27 2013-12-27 Способ автоматической установки приложения без участия человека
RU2013158139 2013-12-27

Publications (2)

Publication Number Publication Date
CN104536788A CN104536788A (zh) 2015-04-22
CN104536788B true CN104536788B (zh) 2017-11-14

Family

ID=52852320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410832012.0A Active CN104536788B (zh) 2013-12-27 2014-12-26 使应用的安装自动化的系统和方法

Country Status (3)

Country Link
US (1) US9513889B2 (zh)
CN (1) CN104536788B (zh)
RU (1) RU2568294C2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3045865B1 (fr) * 2015-12-18 2018-01-05 Bull Sas Procede d'initialisation rapide d'un dispositif de traitement de donnees tactiques
CN107273145A (zh) * 2016-04-06 2017-10-20 中兴通讯股份有限公司 一种软件管理方法及装置、终端
CN107346235B (zh) * 2016-05-04 2021-01-08 鸿富锦精密电子(天津)有限公司 自动安装软件的系统和方法
CN106325918A (zh) * 2016-08-10 2017-01-11 北京北信源软件股份有限公司 一种实现安装后自动激活客户端的方法
WO2019032040A1 (en) * 2017-08-07 2019-02-14 Zmijewski Peter Marek SYSTEM AND METHOD FOR ACCESSING DIGITAL CONTENT ON A PERSONAL COMPUTER
US10782951B2 (en) 2018-02-23 2020-09-22 Digital Turbine, Inc. Instant installation of apps
CN110941437A (zh) * 2019-11-25 2020-03-31 连尚(新昌)网络科技有限公司 一种安装应用的方法与设备
CN113326513B (zh) * 2021-06-16 2022-09-02 百度在线网络技术(北京)有限公司 应用测试方法和装置、系统、电子设备、计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587715B1 (en) * 2002-12-31 2009-09-08 Emc Corporation System and method for selective installation of one or more components for a data storage management system
US8307358B1 (en) * 2007-07-10 2012-11-06 Parallels IP Holdings GmbH Method and system for unattended installation of guest operating system
US8561056B2 (en) * 2009-07-06 2013-10-15 Red Hat Israel, Ltd. Automated installation of operating systems on virtual machines using checksums of screenshots

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5786993A (en) * 1996-06-14 1998-07-28 Landis & Gyr Technology Innovation Corp. Apparatus for and method of controlling and/or regulating process parameters of an installation
US6854089B1 (en) * 1999-02-23 2005-02-08 International Business Machines Corporation Techniques for mapping graphical user interfaces of applications
US6766475B2 (en) * 2001-01-04 2004-07-20 International Business Machines Corporation Method and apparatus for exercising an unknown program with a graphical user interface
GB0108924D0 (en) * 2001-04-10 2001-05-30 Ibm Installation of a data processing solution
AT411802B (de) * 2001-06-01 2004-05-25 Siemens Ag Oesterreich Verfahren zum testen von software
US7228542B2 (en) * 2002-12-18 2007-06-05 International Business Machines Corporation System and method for dynamically creating a customized multi-product software installation plan as a textual, non-executable plan
US20050081166A1 (en) * 2003-10-14 2005-04-14 Stokke Michael A. System and method facilitating automated navigation for user interface(s)
EP1594055A1 (en) 2004-05-03 2005-11-09 Aiptek International Inc. System with application program and method for automatically installing the application program
US7975265B2 (en) * 2004-07-08 2011-07-05 At&T Intellectual Property I, L.P. System and method for providing installation support to a user
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
JP2007287066A (ja) 2006-04-20 2007-11-01 Konica Minolta Business Technologies Inc 画像処理装置、同装置におけるアプリケーションのインストール方法、及びアプリケーションのインストール処理プログラム
US7987460B2 (en) * 2006-10-10 2011-07-26 Intel Corporation Automation tool for application installations
US20080282160A1 (en) * 2007-04-06 2008-11-13 James Ian Tonnison Designated screen capturing and automatic image exporting
JP2009093345A (ja) 2007-10-05 2009-04-30 Brother Ind Ltd インストール方法、インストールプログラム
US20090265586A1 (en) * 2008-04-18 2009-10-22 Sun Microsystems, Inc. Method and system for installing software deliverables
JP5247245B2 (ja) * 2008-05-30 2013-07-24 キヤノン株式会社 情報処理装置及びインストール方法
US8869069B2 (en) 2010-11-23 2014-10-21 Sap Se Method for selecting one or more functions of an implementation guide
US20120246630A1 (en) * 2011-03-23 2012-09-27 Secure By Design System and Method for Automating Installation and Updating of Third Party Software
US8793578B2 (en) * 2011-07-11 2014-07-29 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
KR101850817B1 (ko) 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
US9575739B2 (en) * 2013-03-06 2017-02-21 International Business Machines Corporation Performing unattended software installation
US8918780B2 (en) * 2013-03-14 2014-12-23 International Business Machines Corporation Automatic quality assurance for software installers
US9807085B2 (en) * 2013-03-15 2017-10-31 Veracode, Inc. Systems and methods for automated detection of login sequence for web form-based authentication
US9733782B2 (en) * 2013-09-13 2017-08-15 Fujitsu Limited Extracting a deterministic finite-state machine model of a GUI based application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587715B1 (en) * 2002-12-31 2009-09-08 Emc Corporation System and method for selective installation of one or more components for a data storage management system
US8307358B1 (en) * 2007-07-10 2012-11-06 Parallels IP Holdings GmbH Method and system for unattended installation of guest operating system
US8561056B2 (en) * 2009-07-06 2013-10-15 Red Hat Israel, Ltd. Automated installation of operating systems on virtual machines using checksums of screenshots

Also Published As

Publication number Publication date
US9513889B2 (en) 2016-12-06
CN104536788A (zh) 2015-04-22
RU2568294C2 (ru) 2015-11-20
RU2013158139A (ru) 2015-07-10
US20150186126A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
CN104536788B (zh) 使应用的安装自动化的系统和方法
Raj et al. A study on approaches to build cross-platform mobile applications and criteria to select appropriate approach
US9386079B2 (en) Method and system of virtual desktop infrastructure deployment studio
CN102971688B (zh) 跨平台应用程序框架
US8875098B2 (en) Workflow engine for execution of web mashups
US7778968B2 (en) Systems and methods for compiling applications on a test server
CN106415480B (zh) 用于安装在移动设备上的用于允许对该移动设备进行远程配置的高速应用
US20180309630A1 (en) Automated constraint-based deployment of microservices to cloud-based server sets
JP2018537783A (ja) 事前に生成されたコンポーネントを使用してアプリケーションを稼働させること
CN106648556B (zh) 前后端集成开发测试的方法及装置
AU2018241159B2 (en) Contextual solicitation in a starter application
CA2866180A1 (en) Systems and methods for building a universal intelligent assistant with learning capabilities
US20170286081A1 (en) Silent Installation of Software with Dependencies
CN110515850B (zh) 一种应用程序测试方法、移动终端及存储介质
MX2008003417A (es) Acciones de control definidas en forma declarativa.
US10514940B2 (en) Virtual application package reconstruction
CN110471828B (zh) 一种操作系统测试方法、装置及其设备
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US20130117728A1 (en) Computer program interface
EP3848800B1 (en) Method and apparatus for displaying message box, terminal and storage medium
US11231457B1 (en) Continuous integration for integrated circuit design
CN110888649B (zh) 应用部署方法、应用基线的创建方法和装置
US20240061658A1 (en) Method and system for creating application user interface within integrated development environment
US11915013B2 (en) Operating system service for persistently executing programs
US7743076B2 (en) Extensible action sequences coordinating independently created components

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant