进度显示方法及设备的制作方法

文档序号:6514744阅读:103来源:国知局
进度显示方法及设备的制作方法
【专利摘要】本发明提供了一种进度显示方法及设备。该方法包括:在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数;将所述当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示,其中,所述预定IO写入总字节数通过下面步骤获得:在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数;对IO写入总字节数求平均并作为所述预定IO写入总字节数。采用本发明能够在静默安装程序的过程中显示程序的安装进度。
【专利说明】进度显示方法及设备
【技术领域】
[0001]本发明涉及互联网应用领域,特别是涉及一种进度显示方法及设备。
【背景技术】
[0002]通过第三方安装程序进行程序安装时,通常使用软件静默安装。静默安装指的是安装时无需任何用户干预,直接按默认设置安装,这对于无特殊需求的用户或将软件集成于安装光盘是较为有效的。静默安装也可以称为无人值守安装,在安装过程中可以静默安装好预先设计集成的一些常用软件,安装结束以后软件就已经可以使用。
[0003]静默安装通常是在后台自动执行安装过程,第三方安装程序无法获得安装进度,因此,无法确定静默安装的进度,无法判断是否程序已即将安装结束。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的进度显示设备和相应的进度显示方法。
[0005]基于本发明的一个方面,本发明提供了一种进度显示方法,包括:
[0006]在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数;
[0007]将所述当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示,其中,所述预定IO写入总字节数通过下面步骤获得:
[0008]在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数;
[0009]对IO写入总字节数求平均并作为所述预定IO写入总字节数。
[0010]可选地,上述方法还包括:
[0011 ] 比较所述当前IO写入字节数与所述预定IO写入总字节数,得到尚未安装的IO字节数;
[0012]利用所述尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间并显不。
[0013]可选地,所述安装速度的获得方式包括:
[0014]分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值;
[0015]利用所述差值除以所述预定时间,获得所述安装速度。
[0016]可选地,所述当前安装进度以进度条的方式显示。
[0017]可选地,利用启动函数启动静默安装程序。
[0018]基于本发明的另一个方面,本发明提供了一种进度显示设备,包括:
[0019]扫描器,配置为在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数;
[0020]计算器,配置为将所述当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度,其中,所述预定IO写入总字节数通过下面步骤获得:在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数;对IO写入总字节数求平均并作为所述预定IO写入总字节数;
[0021]进度显示器,配置为显示所述当前安装进度。
[0022]可选地,所述计算器,还配置为比较所述当前IO写入字节数与所述预定IO写入总字节数,得到尚未安装的IO字节数;利用所述尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间;
[0023]所述进度显示器,还配置为显示预测的安装完成时间。
[0024]可选地,所述计算器还配置为:分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值;利用所述差值除以所述预定时间,获得所述安装速度。
[0025]可选地,所述进度显示器还配置为以进度条的方式显示所述当前安装进度。
[0026]在本发明实施例中,启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行扫描以获得当前IO写入字节数,进而将当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示。由此可见,本发明实施例能够在静默安装程序的过程中显示程序的安装进度,解决了现在技术中提及的无法确定静默安装进度以及无法判断程序是否即将安装结束的技术问题,提高了用户感受体验。并且,在本发明实施例中,获得预定IO写入总字节数之后,每次启动静默安装程序均可以调用该预定IO写入总字节数,不需要重复计算,节省系统资源。
[0027]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0028]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
【专利附图】

【附图说明】
[0029]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0030]图1示出了根据本发明一个实施例的进度显示方法的处理流程图;
[0031]图2示出了根据本发明一个实施例的程序静默安装完成时间的预测方法的处理流程图;以及
[0032]图3示出了根据本发明一个实施例的进度显示设备的结构示意图。
【具体实施方式】
[0033]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0034]为解决上述技术问题,本发明实施例提供了一种进度显示方法。图1示出了根据本发明一个实施例的进度显示方法的处理流程图。参见图1,该进度显示方法包括步骤S102至步骤S104。
[0035]步骤S102、在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数。其中,本发明实施例中的IO写入字节数是指对磁盘等存储介质进行读写时的“写”操作的字节数。
[0036]步骤S104、将当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示。
[0037]其中,步骤S104中提及的预定IO写入总字节数可以通过不同手段获得,本发明实施例提供了一种获得方式,即,在每次程序静默安装完成时记录最后一次得到的IO写入总字节数,对记录的多个IO写入总字节数求平均并作为预定IO写入总字节数。在获得预定IO写入总字节数之后,每次启动静默安装程序均可以调用该预定IO写入总字节数,不需要
重复计算。
[0038]在本发明实施例中,启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行扫描以获得当前IO写入字节数,进而将当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示。由此可见,本发明实施例能够在静默安装程序的过程中显示程序的安装进度,解决了现在技术中提及的无法确定静默安装进度以及无法判断程序是否即将安装结束的技术问题,提高了用户感受体验。并且,在本发明实施例中,获得预定IO写入总字节数之后,每次启动静默安装程序均可以调用该预定IO写入总字节数,不需要重复计算,节省系统资源。
[0039]虽然程序的安装进度能够让用户获知安装程序目前的大概情况,例如,安装进度是否超过一半,安装进度是否已接近尾声,但是对于具体精确要多长时间能够结束安装,仅依靠步骤S104显示的进度显示无法得到答案。因此,除安装进度外,本发明实施例还预测了程序静默安装的完成时间。
[0040]图2示出了根据本发明一个实施例的程序静默安装完成时间的预测方法的处理流程图。参见图2,该预测方法至少包括步骤S202至步骤S204。
[0041]步骤S202、比较当前IO写入字节数与预定IO写入总字节数,得到尚未安装的IO
字节数。
[0042]步骤S204、利用尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间并显示。
[0043]在本发明实施例中,需要说明的是,安装速度可以是预先设置的,也可以是根据实际安装进度确定的。若安装进度本身是均速安装的,那么安装速度保持一个恒定值不变。但是,安装进度本身通常依赖于网络环境、设备自身等外在环境,因此,在整个安装进度中,安装速度本身通常是不恒定的,需要根据实际安装进度确定。当然,根据实际安装进度确定的安装速度与实际安装速度更为接近,误差更小,根据该安装速度预测出的程序静默安装的完成时间也就更为精准。现对根据实际安装进度确定安装进度的方式进行详细说明。在本发明实施例中,首先,分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值。例如,前一次扫描对应的当前IO写入字节数为6M,后一次扫描对应的当前IO写入字节数为10M,那么,两次相邻扫描对应的IO写入字节数即为10-6=4M。其次,利用计算出的差值除以步骤S102中提及的预定时间,获得安装速度。例如,若预定时间为2s,那么,此时的安装速度为 4/2=2M/s。
[0044]需要说明的是,在本发明实施例中,安装进度以及安装完成时间等安装信息的获取时间并没有时序关系,可以根据用户选择选择不同的获取时间。
[0045]在本发明实施例中,当前安装进度可以以任何能够显示的方式进行显示,例如,以百分比数字显示,以进度条方式显示,以不同安装阶段的文字显示,等等。任选的,当前安装进度可以以进度条的方式显示。此处的进度条可以使用一个总进度条,也可以根据安装程序所安装的各部分使用多个子进度条,每个子进度条显示其中一个步骤或一部分功能所对应的程序的安装进度,具体采用哪种根据具体情况而定。
[0046]现以一个具体实施例对本发明实施例提供的进度显示方法进行详细阐述,以将该方法阐述地更清楚更明白。为方便理解,本发明实施例以酷狗音乐为例进行说明。
[0047]首先,本发明实施例需要通过例如createprocess (windows操作系统的API,用于创建进程)或类似函数启动程序静默安装。例如,可以利用CreateProcess实现带参数启动,Createprocess函数的第一个参数为文件路径,第二个参数为命令行,使用时在第二个参数处填入指定的文本,从而启动程序静默安装。
[0048]其次,使用/S/D=参数启动酷狗音乐安装程序,其中,/S/D标明的是酷狗音乐安装包的安装路径,表明酷狗音乐在“=”后面标识的目录中。程序启动同时保存该安装程序进程标识(ID)。
[0049]在极短间隔对系统进程进行枚举。本实施例中可以从进程结构体中获取其父进程,通过父进程挨个向上查找。当查找到酷狗音乐相关进程,则认为是酷狗音乐子进程。找出酷狗音乐的安装程序进程以及其子进程后,分别调用openprocess (windows操作系统的API,用于打开进程)函数获取到进程句柄,然后通过调用GetProcess1Counters (windows操作系统的API,用于获取进程10计数)函数对安装进程以及子进程的10进行查询,记录10 写入字节数。实施时,GetProcess1Counters 函数可得到一个 P10_C0UNTERS (windows操作系统的API,用于存储10情况)的结构体,该结构体的WriteTransferCount (windows操作系统的API,用于对写入的字节进行计数)成员就是当前写入的字节数。
[0050]安装程序退出时,记录最后一次查询得到的10写入字节数。因进程退出后无法进行查询,因此以最后一次查询的10写入字节数为准。
[0051]多次重复执行上述最后一次查询的10写入字节数的获取步骤,将每次获得的最后一次查询的10写入字节数进行平均,获取与实际安装进程大小最为接近的10写入字节数并记录,作为后续计算安装进度所使用的预定10写入总字节数。
[0052]随后,在任意一个安装程序的安装过程中,每间隔指定时间对当前安装程序进行扫描,获得当前10写入字节数。将预定10写入总字节数与当前10写入字节数相除,获取到当前安装进度。此处需要说明地是,可以通过GetTickCount (windows操作系统的API,用于获取从操作系统启动到现在所经过的毫秒数)函数获取到系统启动至函数调用中间经过的毫秒数,以及指定时间所对应的毫秒数。
[0053]除安装进度外,前文还提及本发明实施例能够预测安装完成所需时间,因此,可以利用相邻两次扫描所得到的10写入字节数相减得到指定时间内的10写入字节数,利用指定时间内的10写入字节数可确定安装速度。然后,利用公式(I)预测出安装完成所需时间:
[0054](预定10写入总字节数-当前10写入字节数)/安装速度。[0055]上文以酷狗音乐为例,说明本发明实施例提供的进度显示方法如何获取酷狗音乐的进度,并说明如何预测酷狗音乐的安装完成时间。现以具体数字为例进行说明。
[0056]首先,获取其他用户安装完成时的IO写入总字节数并进行平均,获取到酷狗音乐的IO写入总字节数,作为预定IO写入总字节数。本例中,用户I的酷狗音乐IO写入总字节数为105MB,用户2的酷狗音乐IO写入总字节数为108MB,用户3的酷狗音乐IO写入总字节数为102MB,则平均得到酷狗音乐安装大小为105MB。
[0057]其次,带参数启动酷狗音乐安装包,此处的参数为/S/D=c:\l,这代表将会将酷狗音乐安装到c:\l目录下。
[0058]然后,每经过2秒钟,获取酷狗音乐的当前IO写入字节数。通过本次获取的IO写入字节数减去上次获取的IO写入字节数得到相应差值,将该差值除以2,即可得到每秒写入数据大小。本例中,2秒前获取的IO写入总字节数为20MB,2秒后获取的IO写入字节数为36MB,则每秒写入数据大小为:(36-20) /2=8MB/s。由此可知,酷狗音乐的安装速度为8MB/S。
[0059]在获知安装速度后,通过酷狗音乐的预定IO写入总字节数减去当前获取的IO写入字节数,并将差值除以每秒写入数据大小,就可以预测安装完成时间。在本例中,(105-36) /8=8.625秒。由此可知,再有8.625秒酷狗音乐安装结束。
[0060]进一步,通过当前获取的IO写入字节数除以酷狗音乐的预定IO写入总字节数,可以得到安装进度。在本例中,36/105?34%。
[0061]综上,此时,用户可以获知,酷狗音乐目前安装进度为34%,再经过8.625秒酷狗音乐安装结束。
[0062]由此可见,本发明实施例提供的进度显示方法可以为采用静默安装的软件提供进度展现及安装时间预估,让用户更直观的看到安装进度以及可能需要等待的时间。
[0063]基于同一发明构思,本发明实施例还提供了一种进度显示设备。图3示出了根据本发明一个实施例的进度显示设备的结构示意图。参见图3,该进度显示设备至少包括:
[0064]扫描器310,配置为在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数;
[0065]计算器320,配置为将当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度,其中,预定IO写入总字节数通过下面步骤获得:在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数;对IO写入总字节数求平均并作为预定IO写入总字节数;
[0066]进度显示器330,配置为显示当前安装进度。
[0067]在一个优选的实施例中,
[0068]计算器320,还可以配置为比较当前IO写入字节数与预定IO写入总字节数,得到尚未安装的IO字节数;利用尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间;
[0069]进度显示器330,还可以配置为显示预测的安装完成时间。
[0070]在一个优选的实施例中,计算器320还可以配置为:分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值;利用差值除以预定时间,获得安装速度。
[0071 ] 在一个优选的实施例中,进度显示器330还可以配置为以进度条的方式显示当前安装进度。
[0072]采用本发明实施例提供的进度显示方法及设备,能够达到下面有益效果:
[0073]在本发明实施例中,启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行扫描以获得当前IO写入字节数,进而将当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示。由此可见,本发明实施例能够在静默安装程序的过程中显示程序的安装进度,解决了现在技术中提及的无法确定静默安装进度以及无法判断程序是否即将安装结束的技术问题,提高了用户感受体验。并且,在本发明实施例中,获得预定IO写入总字节数之后,每次启动静默安装程序均可以调用该预定IO写入总字节数,不需要重复计算,节省系统资源。
[0074]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0075]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0076]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0077]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0078]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的进度显示设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0079]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0080]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
【权利要求】
1.一种进度显示方法,包括: 在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数; 将所述当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度并显示,其中,所述预定IO写入总字节数通过下面步骤获得: 在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数; 对IO写入总字节数求平均并作为所述预定IO写入总字节数。
2.根据权利要求1所述的方法,其中,还包括: 比较所述当前IO写入字节数与所述预定IO写入总字节数,得到尚未安装的IO字节数; 利用所述尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间并显示。
3.根据权利要求2所述的方法,其中,所述安装速度的获得方式包括: 分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值; 利用所述差值除以所述预定时间,获得所述安装速度。
4.根据权利要求1至3任一项所述的方法,其中,所述当前安装进度以进度条的方式显/Jn o
5.根据权利要求1至4任一项所述的方法,其中,利用启动函数启动静默安装程序。
6.一种进度显示设备,包括: 扫描器,配置为在启动静默安装程序后,每隔预定时间对安装进程及其子进程的IO进行查询,记录当前IO写入字节数; 计算器,配置为将所述当前IO写入字节数与预定IO写入总字节数进行比较以获得当前安装进度,其中,所述预定IO写入总字节数通过下面步骤获得:在每次程序静默安装完成时记录最后一次查询得到的IO写入总字节数;对IO写入总字节数求平均并作为所述预定IO写入总字节数; 进度显示器,配置为显示所述当前安装进度。
7.根据权利要求6所述的设备,其中, 所述计算器,还配置为比较所述当前IO写入字节数与所述预定IO写入总字节数,得到尚未安装的IO字节数;利用所述尚未安装的IO字节数除以安装速度,预测程序静默安装的完成时间; 所述进度显示器,还配置为显示预测的安装完成时间。
8.根据权利要求7所述的设备,其中,所述计算器还配置为:分别获取两次相邻扫描对应的当前IO写入字节数,计算其差值;利用所述差值除以所述预定时间,获得所述安装速度。
9.根据权利要求6至8任一项所述的设备,其中,所述进度显示器还配置为以进度条的方式显示所述当前安装进度。
【文档编号】G06F11/32GK103593209SQ201310467109
【公开日】2014年2月19日 申请日期:2013年10月9日 优先权日:2013年10月9日
【发明者】张皓秋, 刘义平, 浦欣, 邓鹏
申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1