一种基于操作系统的程序自启动方法和装置的制造方法

文档序号:10569765阅读:146来源:国知局
一种基于操作系统的程序自启动方法和装置的制造方法
【专利摘要】本发明公开了一种基于操作系统的程序自启动方法和装置。该方法包括:基于操作系统管理工具的核心组件监测设定消息事件是否被触发;如果设定消息事件被触发,则基于核心组件判断设定消息事件是否存在关联的动态链接库文件;如果存在关联的动态链接库文件,则基于操作系统管理工具调用所述动态链接库文件的公共接口;通过公共接口运行动态链接库文件中包含的操作系统管理工具提供者,并基于操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。利用该方法,保证了设定的程序仅在符合启动条件时才自启动,有效缩短了电子设备的开机时间,也降低了对系统资源的占用;此外,还避免了安全类软件对所设定的程序自启动的监管。
【专利说明】
一种基于操作系统的程序自启动方法和装置
技术领域
[0001]本发明实施例涉及计算机应用技术领域,尤其涉及一种基于操作系统的程序自启动方法和装置。
【背景技术】
[0002]随着时代的进步和科技的发展,操作系统应用已广为人知,操作系统通常安装于电脑、笔记本或移动终端等电子设备中,为人们的上网、聊天等功能的程序提供一个基本操作平台。
[0003]现有技术中,对于安装了操作系统的电子设备来说,在对该电子设备中的程序进行自启动操作时,通常采用两种方式,一种是直接向操作系统的注册表启动项中写入需要自启动的程序执行命令,在操作系统启动之后开始执行上述执行命令,由此启动对应的程序。另一种是为需要启动的程序向系统注册一个相关联的服务进程,并把该服务进程设置为自启动,由此在系统启动后自启动上述服务项,然后该服务进程发现满足启动关联程序的条件后,启动程序。上述程序自启动的两种方式,其启动特点可以概括为:在操作系统完成启动后,自启动程序或自启动与程序关联的服务进程,以保持程序本身或协助程序启动的服务一直处于运行状态。
[0004]上述程序自启动的方式,存在以下不足:I)总是在系统启动后自启动程序或服务进程,影响了设备的开机时间,且程序自启动后无论是否用到该程序,程序都会一直存在于进程中,造成系统资源的过多占用;2)上述启动方式容易被安全类软件监管,该类软件很容易捕捉到自启动的程序和注册的服务,该类软件会修改程序或服务进程的自启动配置文件,并在系统再次开启后,阻止上述自启动配置文件的数据还原操作,由此使得程序或服务进程无法基于配置文件自启动。

【发明内容】

[0005]本发明提供了一种基于操作系统的程序自启动方法和装置。以优化操作系统下现有的程序自启动操作,从而降低系统资源利用率,缩短电子设备开机时间。
[0006]本发明实施例采用以下技术方案:
[0007]第一方面,本发明实施例提供了一种基于操作系统的程序自启动方法,该方法包括:
[0008]基于操作系统管理工具的核心组件监测设定消息事件是否被触发;
[0009]如果所述设定消息事件被触发,则基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件;
[0010]如果存在关联的动态链接库文件,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口 ;
[0011]通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0012]第二方面,本发明实施例还提供了一种基于操作系统的程序自启动装置,该装置包括:
[0013]消息触发监测模块,用于基于操作系统管理工具的核心组件监测设定消息事件是否被触发;
[0014]关联文件判定模块,用于当所述设定消息事件被触发时,基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件;
[0015]公共接口调用模块,用于当存在关联的动态链接库文件时,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口 ;
[0016]程序自启动确定模块,用于通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0017]本发明实施例提供的一种基于操作系统的程序自启动方法和装置,该方法的实现可描述为:首先基于操作系统管理工具的核心组件监测所设定的消息事件是否被触发,如果被触发,就基于核心组件判断该消息事件是否存在关联的动态链接库文件;随后,如果存在关联动态链接库文件,就基于该操作系统管理工具调用该关联动态链接库文件的公共接口并通过该公共接口运行该动态链接库文件中包含操作系统管理工具提供者,最终基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。利用该方法,保证了程序仅在符合启动条件时才自启动,有效缩短了电子设备的开机时间,同时也降低了对系统资源的占用;此外,安全类软件无法监管注册于操作系统管理工具中的消息事件,因此基于该消息事件所关联的操作系统管理工具提供者不会被安全类软件禁止运行,进而避免了安全类软件对所设定程序自启动的监管。
【附图说明】
[0018]图1为本发明实施例一提供的一种基于操作系统的程序自启动方法的流程图;
[0019]图2a为本发明实施例二提供的一种基于操作系统的程序自启动方法的流程图;
[0020]图2b为本发明实施例二提供的注册设定消息事件的流程图;
[0021]图3为本发明实施例三提供的一种基于操作系统的程序自启动方法的流程图;
[0022]图4a为本发明实施例四提供的一种基于操作系统的程序自启动方法的优选实施例;
[0023]图4b为本发明实施例四提供的Windows操作系统的Windows管理工具的架构图;
[0024]图5为本发明实施例五提供的一种基于操作系统的程序自启动装置的结构框图;
[0025]图6为本发明实施例六提供的一种基于操作系统的程序自启动装置的结构框图。
【具体实施方式】
[0026]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0027]实施例一
[0028]图1为本发明实施例一提供的一种基于操作系统的程序自启动方法的流程图,该方法适用于基于操作系统的管理工具对安装在电子设备中的程序进行自启动确定的情况,可以由基于操作系统的程序自启动装置执行,其中该装置可由软件和/或硬件实现,并一般集成于电子设备中。
[0029]如图1所示,本发明实施例一提供的一种基于操作系统的程序自启动方法,具体包括如下操作:
[0030]S110、基于操作系统管理工具的核心组件监测设定消息事件是否被触发。
[0031 ] 一般地,操作系统可理解为直接运行在“裸机”上的基本系统软件,是支持其他软件运行的基本平台,所谓“裸机”可理解为仅有硬件没有软件支持的电子设备。常见的操作系统有Windows系统、1S系统、Android系统以及Linux系统等。所述操作系统管理工具可理解为用于管理本地或远程电子设备的服务插件,示例性的,如作用于Linux系统的Iandscapel.5,可以监控和管理Linux的服务器;如作用于Windows系统的Windows管理工具(Windows Management Instrumentat1n,WMI)可以监控和管理安装Windows系统的电子设备中的硬件或软件。需要说明的是,本实施例的技术方案优选考虑在安装Windows系统的电子设备上的应用。
[0032]在本实施例中,所述操作系统管理工具的结构可概括为3部分:I)操作系统管理工具的使用者,2)操作系统管理工具的基础组件,以及3)操作系统管理工具的提供者。具体的,所述操作系统管理工具的使用者可理解为对管理工具中各项技术的使用载体,对于程序开发人员来说可以通过所提供的技术进行数据查询以及增、删或改等操作;所述操作系统管理工具的基础组件包括核心组件和存储组件,所述核心组件可用于控制操作系统管理工具的使用者和提供者,并可作为系统管理工具的使用者和提供者进行信息交互的传递者,为二者的数据通信提供服务,此外,核心组件自身还可用于监测消息事件,确定消息事件的触发时机;所述操作系统管理工具的存储组件可用于存储操作系统管理所需的数据信息;所述操作系统管理工具的提供者可理解为数据信息的提供者,一般依赖于动态链接库文件实现逻辑数据信息的执行。
[0033]在本实施例中,基于操作系统管理工具的核心组件监测所设定消息事件是否被触发。具体的,所述设定消息事件可理解为安装有操作系统的电子设备的硬件或软件可能会发生的事件,示例性的,如电子设备的电池可能会发生剩余电量为20%的事件,又如电子设备的通用串行总线(Universal Serial Bus ,USB)插口可能会发生USB设备的接入事件,又或者电子设备中安装的上网客户端可能会发生接收用户的点击指令进入互联网的事件。上述事件都可作为设定消息事件。在本实施例中,所述设定消息事件存在于操作系统管理工具中,所述设定消息事件的触发与否可基于操作系统管理工具的核心组件来实时监控。
[0034]S120、如果所述设定消息事件被触发,则基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件。
[0035]在本实施例中,如果监测到设定的消息事件被触发(示例性的,如监测到设定的电子设备电池剩余电量达到触发值,所述触发值可以设定为总电量的20%),则可基于操作系统管理工具的核心组件判断该设定消息事件在该操作系统管理工具中是否存在关联的动态链接库文件。
[0036]在本实施例中,所设定的消息事件仅起到对所关联动态链接库文件的触发作用,即可理解为当所设定的消息事件被触发后,与所述消息事件关联的动态链接库文件就得到了一个被运行的机会;相应的,如果所设定的消息事件没有被触发,与所述消息事件关联的动态链接库文件就不会被运行。具体的,在本实施例中,所述动态链接库文件可理解为包含操作系统管理工具提供者的能够基于操作系统管理工具调用公共接口运行的逻辑载体文件。
[0037]在本实施例中,所述动态链接库文件可认为是包含操作系统管理工具提供者的逻辑载体,其具体的逻辑执行语句包含在对应的操作系统管理工具提供者中,所述逻辑执行语句一般可基于所关联的设定消息事件实际设定。
[0038]S130、如果存在关联的动态链接库文件,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口。
[0039]在本实施例中,操作系统管理工具核心组件对是否存在关联的动态链接库文件进行判断确定后,如果存在关联的动态链接库文件,并不能直接执行所关联的动态链接库文件,而是需要基于操作系统管理工具调用所述动态链接库文件对应的公共接口,通过所对应的公共接口来实现操作系统管理工具核心组件与动态链接库文件所包含的操作系统管理工具提供者之间的信息交互,从而达到执行操作系统管理工具提供者的目的。
[0040]需要说明的是,在操作系统管理工具中,操作系统管理工具基础组件(主要指基础组件中的核心组件)对外所提供的服务都要通过对公共接口的调用来实现。一般地,操作系统管理工具需要为提供的服务对应一个用于调用的公共接口,不同的服务一般对应的公共接口 id不同。
[0041]S140、通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0042]在本实施例中,当所述设定消息事件存在关联的动态链接库文件,并通过操作系统管理工具调用所述动态链接库文件的公共接口后,可通过所调用的公共接口运行所述动态链接库文件中所包含的操作系统管理工具提供者。可以理解的是,所述动态链接库文件中操作系统管理工具提供者包含的内容可以是对消息事件触发结果进行的一些逻辑判断,主要通过执行所述操作系统管理工具提供者的逻辑语句实现,其逻辑语句的内容一般与所述消息事件被触发后的触发结果存在一定的联系。所设定的逻辑语句一般为对所述触发结果的判定语句,以及各判定结果所对应的执行语句。例如,判定语句可设定为:判定电子设备电池剩余电量是否不高于20%,在不高于20%时所对应的执行语句可以自启动所设定的程序。
[0043]在本实施例中,设定的程序可以是用户在上次使用操作系统时提前设定的自启动程序,如用户在安装或使用程序过程中对程序进行自启动设置,设定的程序也可以是操作系统默认自启动的程序。示例性的,设定的程序可以是诸如安全管家、安全卫士和手机助手之类的程序。
[0044]本实施例一的技术方案,首先基于操作系统管理工具的核心组件监测设定消息事件是否被触发,并在被触发后仍基于其核心组件判定设定消息事件是否存在关联动态链接库文件;之后,在确定存在关联动态链接库文件时,基于操作系统管理工具调用该关联动态链接库文件对应的公共接口;然后通过公共接口运行动态链接库文件中所包含操作系统管理工具的提供者的逻辑语句;最终通过所执行的逻辑语句确定是否自启动设定的程序。利用该方法,与现有的程序自启动方法相比,不会在操作系统启动后直接启动程序的关联服务进程或基于注册表启动项直接启动程序,由此大大节省了电子设备的开机时间,同时减小了所占用运行内存的大小并降低了操作系统资源的消耗;此外,由于程序的自启动不基于注册表启动项或相关服务进程,就不会出现被安全类软件设置为禁止启动的情况,保证了设定的程序自启动有效进行。
[0045]实施例二
[0046]图2a为本发明实施例二提供的一种基于操作系统的程序自启动方法的流程图。本发明实施例以上述实施例为基础进行优化,在本实施例中,在“基于操作系统管理工具的核心组件监测设定消息事件是否被触发”之前,还优选包括了:注册所述设定消息事件信息到所述操作系统管理工具,其中,所述设定消息事件信息包括所述设定消息事件及与所述设定消息事件关联的动态链接库文件名。
[0047]如图2a所示,本发明实施例二提供的一种基于操作系统的程序自启动方法,具体包括如下操作:
[0048]S210、注册所述设定消息事件信息到所述操作系统管理工具。
[0049]在本实施例中,所述设定消息事件信息包括所述设定消息事件及与所述设定消息事件关联的动态链接库文件名。
[0050]在本实施例中,操作系统管理工具的核心组件所监控的设定消息事件一般需要提前注册到操作系统管理工具,由此才能保证所述核心组件对设定消息事件的实时监控。因此,可通过执行S210来实现设定消息事件到操作系统管理工具的注册。
[0051]具体的,注册到操作系统管理工具的信息一般包括设定的消息事件自身,以及与该设定消息事件存在关联的动态链接库文件名,上述信息统称为设定消息事件信息,由此才能保证所述核心组件判断设定消息事件是否存在关联的动态链接库文件。对于设定消息事件信息到所述操作系统管理工具的注册过程可基于构建的特定格式的描述文件来基于操作系统自带的解析工具来实现。
[0052]进一步的,图2b为本发明实施例二提供的注册设定消息事件的流程图,如图2b所示,注册设定消息事件具体可以包括:
[0053]S2101、构造所述设定消息事件的描述文件。
[0054]在本实施例中,所述描述文件具体可理解为包含所述设定消息事件信息的用于向操作系统管理工具进行注册的可执行文件。在所述描述文件中,可基于特定的编程语言实现对所述设定消息事件对象、实例以及所需数组或筛选器的构建,由此形成特定格式的描述文件。示例性的,在Windows系统中,所构造的描述文件的格式一般为.mof格式,在描述文件中存在与设定消息事件相关的方法函数等。
[0055]S2102、基于操作系统的特定解析工具解析所述描述文件,并获取所述描述文件中包含设定消息事件信息。
[0056]在本实施例中,对于S2101构造生成的描述文件,可通过调用操作系统中自带的特定解析工具来解析上述描述文件。示例性的,在Windows系统中,该特定解析工具主要由微软公司提供,集成在Windows系统中。在本实施例中,在通过调用特定解析工具解析所述描述文件后,特定解析工具可从所述描述文件中获取需要的设定消息事件信息。
[0057]S2103、依据所述特定解析工具将所述设定消息事件信息注册到所述操作系统管理工具中。
[0058]在本实施例中,所述特定解析工具将解析到的设定消息事件信息交互给操作系统管理工具,由此实现所述设定消息事件信息到所述操作系统管理工具的注册,具体的,一般将所述设定消息事件信息注册到操作系统管理工具的存储组件中。示例性的,在Windows系统下,其管理工具WMI的基础组件中,存在WMI核心组件以及WMI存储组件两个模块,在调用微软提供的特定解析工具实现对描述文件的解析后,将获得的设定消息事件信息交互给WMI的基础组件,并存储到WMI存储组件中,由此实现设定消息事件到WMI的注册。
[0059]S220、基于操作系统管理工具的核心组件监测设定消息事件是否被触发。
[0060]S230、如果所述设定消息事件被触发,则基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件。
[0061]S240、如果存在关联的动态链接库文件,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口。
[0062]S250、通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0063]在本实施例中,S220?S250的实现过程已在上述实施例一中具体描述,这里不再详述。
[0064]本实施例二的技术方案,在实施例一的基础上优化增加了对设定消息事件的注册操作。该注册操作将设定消息事件直接注册到操作系统管理工具中,并通过操作系统管理工具的核心组件直接监测消息事件是否触发,然后在消息事件触发后为该消息事件关联的动态链接库文件提供一次运行机会,由此基于动态链接库文件中提供者包含的逻辑语句确定程序是否自启动。利用该方法,直接将设定消息事件注册于操作系统管理工具中,实现了操作系统管理工具的核心组件对消息事件的监控,由于安全类软件不能对操作系统的管理工具进行监管,使得安全类软件无法监管设定消息事件,因此保证了基于该消息事件所运行的操作系统管理工具提供者不会被安全类软件禁止启动,进而保证了设定的程序能够正常的进行自启动,提升了用户体验。
[0065]实施例三
[0066]图3为本发明实施例三提供的一种基于操作系统的程序自启动方法的流程图。本发明实施例三以上述实施例二为基础进行优化,在本实施例中,在“注册所述设定消息事件信息到所述操作系统管理工具”之后,还包括:创建所述设定消息事件关联的动态链接库文件,并在所述动态链接库文件中构建一个操作系统管理工具提供者,其中,所述操作系统管理工具提供者中包含可执行的逻辑语句;注册所述动态链接库文件的文件信息到操作系统注册表,其中,所述文件信息包括:所述动态链接库文件的文件名、存储位置以及所述动态链接库文件关联的操作系统管理工具公共接口 id。
[0067]进一步的,还将步骤“基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序”具体优化为:基于所述操作系统管理工具提供者判定所述设定消息事件的触发结果是否满足设定的程序的启动条件;如果所述触发结果满足所述启动条件,则自启动所述设定的程序。
[0068]如图3所示,本发明实施例三提供的一种基于操作系统的程序自启动方法,具体包括如下操作:
[0069]S310、注册所述设定消息事件信息到所述操作系统管理工具。
[0070]在本实施例中,S310的实现过程已在上述实施例二中具体描述,这里不再详述。进一步的,在注册所述设定消息事件信息到所述操作系统管理工具时,也将与之关联的动态链接库文件名信息注册到操作系统管理工具。因此,可以为所述设定消息事件创建关联的动态链接库文件,使得在设定消息事件被触发时,存在一个处理消息事件关联服务的机会。
[0071]S320、创建所述设定消息事件关联的动态链接库文件,并在所述动态链接库文件中构建一个操作系统管理工具提供者。
[0072]在本实施例中,可以理解的是,操作系统管理工具对外提供的服务一般通过公共接口来实现。而调用公共接口执行相应服务(所执行的服务一般认为是操作系统管理工具提供者包含的逻辑语句)时一般需要使用动态链接库文件来做逻辑载体,因此,需要为可执行的相应服务构建作为逻辑载体的动态链接库文件,且所述动态链接库文件需要与设定消息事件关联。
[0073]在本实施例中,可在特定目录下创建动态链接库文件,并以该动态链接库文件为逻辑载体在该文件中构建一个作为操作系统管理工具服务的提供者,其中,该提供者中存在调用公共接口时可执行的逻辑语句。
[0074]S330、注册所述动态链接库文件的文件信息到操作系统注册表。
[0075]在本实施例中,在创建好包含一个操作系统管理工具提供者的动态链接库文件后,需要将该动态链接库文件的文件信息注册到操作系统的注册表中,由此基于所述文件信息才能实现操作系统管理工具对该动态链接库文件所对应公共接口的调用,一般地,可基于操作系统管理工具中的组件对象模型技术将所述动态链接库文件的文件信息注册到操作系统注册表。
[0076]在本实施例中,所述文件信息具体可包括所述动态链接库文件的文件名、存储位置以及所述动态链接库文件关联的操作系统管理工具公共接口 id,上述信息在操作系统管理工具中起到了信息索引的作用,示例性的,操作系统管理工具的核心组件基于文件名可确定是否是设定消息事件所关联的动态链接库文件,还可基于关联的公共接口 id实现操作系统管理工具对对应公共接口的调用,也可基于存储位置确定动态链接库文件由此实现所包含的操作系统管理工具提供者的执行。
[0077]需要说明的是,动态链接库文件的文件信息是注册到操作系统的注册表中的,可在注册时为其设置管理权限,以使得注册到注册表中的文件信息不能被安全类软件修改,由此保证操作系统管理工具能够基于所注册的文件信息成功找到所需的信息。
[0078]S340、基于操作系统管理工具的核心组件监测设定消息事件是否被触发。
[0079]S350、如果所述设定消息事件被触发,则基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件。
[0080] S360、如果存在关联的动态链接库文件,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口。
[0081 ] 在本实施例中,S340?S360的实现过程已在上述实施例一中具体描述,这里不再详述。
[0082]S370、通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者。
[0083]具体的,所述运行操作系统管理工具提供者可理解为运行操作系统管理工具提供者中包含的逻辑语句,其中,所述逻辑语句一般包括判定语句以及判定结果对应的执行语句。
[0084]S380、基于所述操作系统管理工具提供者判定所述设定消息事件的触发结果是否满足设定的程序的启动条件。
[0085]基于操作系统管理工具提供者中的判定语句判定所述消息事件的触发结果是否符合启动设定的程序的启动条件。该判定语句一般可以有两个判定结果,即符合条件和不符合条件,当判定结果为符合条件时,所对应的执行语句可以是自启动设定的程序;当判定结果为不符合条件时,所对应的执行语句可以是不启动设定的程序。
[0086]S390、如果所述触发结果满足所述启动条件,则自启动所述设定的程序。
[0087]本实施例三的技术方案,在上述实施例二的基础上进一步优化了设定消息事件的关联动态链接库文件的创建操作;并进一步具体化了基于操作系统管理工具提供者的逻辑语句确定程序自启动的操作过程。利用该方法,使得设定的程序的自启动仅依赖于设定消息事件的触发以及操作系统管理工具提供者的逻辑语句,避免了设定的程序开机自启动情况,大大节省了电子设备的开机时间;同时减小了所占用运行内存的大小并降低了操作系统资源的消耗;此外,由于基于操作系统管理工具来监测设定消息事件的触发,且安全类软件无法监管设定消息事件,因此保证了基于该消息事件所运行的操作系统管理工具提供者不会被安全类软件禁止启动,进而保证了设定的程序自启动有效进行。
[0088]实施例四
[0089]图4a为本发明实施例四提供的一种基于操作系统的程序自启动方法的优选实施例。本发明实施例四以上述实施例一、实施例二以及实施例三中的任一实施例为基础进行优化,在本实施例中,将操作系统具体优化为Windows操作系统,同时,将所述操作系统管理工具优化为WMI,图4b为本发明实施例四提供的Windows操作系统下的WMI的架构图。
[0090]如图4b所示,在Windows操作系统下的WMI的架构图中,可将WMI分为3层,分别是WMI使用者(WMI Consumers)41、WMI基础组件(WMI Infrastructure)42以及WMI提供者(WMIProviders)43。需要说明的是,WMI基础组件42包括WMI核心组件(丽I core)421和WMI存储组件(丽I Repository)422,其中,丽I核心组件421可用于控制丽I使用者41和丽I提供者42,并可作为WMI使用者41和WMI提供者42进行信息交互的传递者,为二者的数据通信提供服务,此外,所述WMI核心组件421还可获取WMI存储组件422中的数据信息,并将所获取的信息传递给丽I使用者41或丽I提供者42。由于WMI技术是Windows系统中的现有技术,这里不再详细说明。
[0091]在本实施例中,可通过WMI核心组件421监测设定消息事件的触发,并判断是否存在与设定消息事件关联的动态链接库文件;之后,通过WMI提供者43中的逻辑语句确定设定的程序的自启动。
[0092]此外,本实施例四所设定的应用场景是对手机助手这个设定的程序所进行的自启动。进一步的,本实施例四将手机助手的自启动与设定的通用串行总线USB设备接入事件相关联,具体的,通过监测USB设备接入事件来确定是否启动手机助手。
[0093]如图4a所示,本发明实施例四提供的一种基于操作系统的程序自启动方法的优选实施例,具体包括如下操作:
[0094]S410、将USB设备接入事件注册到WMI中。
[0095]示例性的,构造包含USB设备接入信息的格式为.mof的描述文件,并基于微软公司提供的特定解析工具对描述文件进行解析,可解析出所需要的USB设备接入事件以及与该事件关联的动态链接库文件名;并可基于该解析工具将上述USB设备接入事件信息注册到WMI的WMI存储组件中,以完成USB设备接入事件到WMI的注册。
[0096]S420、创建所述USB设备接入事件关联的动态链接库文件,并在所述动态链接库文件中构建一个WMI提供者。
[0097]示例性的,在USB设备接入事件触发后,可以为所关联的动态链接库文件提供一个调用执行的机会,因此,可基于S420为USB设备接入事件创建关联的动态链接库文件,由于动态链接库文件仅是一个逻辑载体,还需要在该文件中构建一个WMI提供者,才能实现程序自启动的确定操作。具体的,可基于特定语言在动态链接库文件中构建包含可执行逻辑语句的丽I提供者。
[0098]S430、注册所述动态链接库文件的文件信息到Windows注册表。
[0099]在本实施例中,因为WMI提供者处于WMI架构的第三层,而WMI架构中的各层之间实现通信时需要通过调用公共接口实现,所以在WMI中构建好动态链接库文件之后,WMI核心组件确定USB设备接入事件存在关联的动态链接库文件后,并不能直接执行动态链接库文件中的WMI提供者,需要通过调用该动态链接库文件所对应的公共接口才能运行动态链接库文件中WMI提供者的逻辑语句。
[0100]在本实施例中,可基于WMI中的com技术(微软组件对象模型)来实现动态链接库文件的文件信息到Windows系统注册表的注册,其中,所述文件信息主要包括动态链接库文件的文件名、存储位置、以及对应的公共接口 id等。需要说明的是,在进行注册操作时可为该注册信息设置管理权限,以避免安全类监管软件对该注册信息的修改。
[0101 ] S440、基于WMI的WMI核心组件监测USB设备接入事件是否被触发。
[0102]示例性的,基于上述S410?S430的步骤完成预操作后,可基于WMI的WMI核心组件来监测USB设备加入事件是否被触发。
[0103]S450、如果监测到所述USB设备接入事件被触发,则基于所述WMI核心组件判断所述USB设备接入事件在所述WMI中是否存在关联的动态链接库文件。
[0104]示例性的,WMI核心组件可基于注册到WMI中USB设备接入事件信息中包含的动态链接库文件名来确定USB设备接入事件是否关联的动态链接库文件。
[0105]S460、如果存在关联的动态链接库文件,则基于所述WMI调用所述动态链接库文件的公共接口。
[0106]示例性的,所述公共接口的确定主要基于注册到Windows系统注册表中动态链接库文件对应的公共接口 id实现。由此实现WMI对所述动态链接库文件对应公共接口的调用。
[0107]S470、通过所述公共接口运行所述动态链接库文件中包含的WMI提供者。
[0108]S480、基于所述WMI提供者判定所述USB设备接入事件的触发结果是否满足手机助手的启动条件。
[0109]示例性的,所述USB设备接入事件的触发结果可以是接入设备为U盘,可以是接入设备为移动硬盘件,也可以是接入设备为手机、平板电脑等智能终端。基于S480就可以判断上述触发结果是否满足WMI提供者中设定的判定语句,即判定上述触发结果是否满足手机助手的启动条件。
[0110]在本实施例中,设定当触发结果为接入设备为手机、平板电脑等智能终端时满足手机助手的启动条件。
[0111]S490、如果所述触发结果满足所述启动条件,则自启动手机助手。
[0112]示例性的,当触发结果为接入设备为手机、平板电脑等智能终端时,自启动手机助手这个设定的程序。
[0113]本实施例四的技术方案,为本发明提供的基于操作系统的程序自启动方法的优选实施例,本实施例四基于本发明方法具体化了应用场景为自启动手机助手的操作过程。利用该方法,使得手机助手的自启动仅依赖于设定的USB设备接入事件的触发以及WMI提供者的逻辑语句,避免了手机助手开机便自启动的情况,大大节省了电子设备的开机时间;同时减小了所占用运行内存的大小并降低了操作系统资源的消耗;此外,由于基于WMI来监测设定消息事件的触发,且安全类软件无法监管设定消息事件,因此保证了基于该消息事件所运行的WMI提供者不会被安全类软件禁止启动,进而保证了设定的程序自启动有效进行。
[0114]实施例五
[0115]图5为本发明实施例五提供的一种基于操作系统的程序自启动装置的结构框图。本实施例的装置可由软件和/或硬件实现,可适用于基于操作系统的管理工具对安装在电子设备中的程序进行自启动确定的情况,并一般集成在电子设备中,如图5所示,该装置包括:消息触发监测模块51、关联文件判定模块52、公共接口调用模块53以及程序自启动确定模块54。
[0116]其中,消息触发监测模块51,用于基于操作系统管理工具的核心组件监测设定消息事件是否被触发。
[0117]关联文件判定模块52,用于当所述设定消息事件被触发时,基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件。
[0118]公共接口调用模块53,用于当存在关联的动态链接库文件时,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口。
[0119]程序自启动确定模块54,用于通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0120]在本实施例中,该装置首先通过消息触发监测模块51基于操作系统管理工具的核心组件监测设定消息事件是否被触发;然后通过关联文件判定模块52当所述设定消息事件被触发时,基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件;之后通过公共接口调用模块53当存在关联的动态链接库文件时,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口 ;最后通过程序自启动确定模块54基于所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。
[0121]本实施例五的技术方案,利用该装置,与现有的程序自启动装置相比,不会在操作系统启动后直接启动程序的关联服务进程或基于注册表启动项直接启动程序,由此大大节省了电子设备的开机时间,同时减小了所占用运行内存的大小并降低了操作系统资源的消耗;此外,由于程序的自启动不基于注册表启动项或相关服务进程,就不会出现被安全类软件设置为禁止启动的情况,保证了设定的程序自启动有效进行。
[0122]进一步的,所述程序自启动确定模块54,具体用于:
[0123]基于所述操作系统管理工具提供者判定所述设定消息事件的触发结果是否满足设定的程序的启动条件;如果所述触发结果满足所述启动条件,则自启动所述设定的程序。
[0124]实施例六
[0125]图6为本发明实施例六提供的一种基于操作系统的程序自启动装置的结构框图。本实施例六以上述实施例五为基础进行优化,在本实施例中,该装置除包括消息触发监测模块51、关联文件判定模块52、公共接口调用模块53以及程序自启动确定模块54外,还包括:消息事件注册模块60和关联文件创建模块61。
[0126]其中,消息事件注册模块60,用于在基于操作系统管理工具的核心组件监测设定消息事件是否被触发之前,注册所述设定消息事件信息到所述操作系统管理工具,其中,所述设定消息事件信息包括所述设定消息事件及与所述设定消息事件关联的动态链接库文件名。
[0127]所述关联文件创建模块61,具体用于:
[0128]在注册所述设定消息事件信息到所述操作系统管理工具之后,创建所述设定消息事件关联的动态链接库文件,并在所述动态链接库文件中构建一个操作系统管理工具提供者,其中,所述操作系统管理工具提供者中包含可执行的逻辑语句;注册所述动态链接库文件的文件信息到操作系统注册表,其中,所述文件信息包括:所述动态链接库文件的文件名、存储位置以及所述动态链接库文件关联的操作系统管理工具公共接口 id。
[0129]进一步的,所述消息事件注册模块60,具体用于:
[0130]构造所述设定消息事件的描述文件;基于操作系统的特定解析工具解析所述描述文件,并获取所述描述文件中包含设定消息事件信息;依据所述特定解析工具将所述设定消息事件信息注册到所述操作系统管理工具中。
[0131]本实施例六的技术方案,利用该装置,直接将设定消息事件注册于操作系统管理工具中,实现了操作系统管理工具的核心组件对消息事件的监控,由于安全类软件不能对操作系统的管理工具进行监管,使得安全类软件无法监管设定消息事件,因此保证了基于该消息事件所运行的操作系统管理工具提供者不会被安全类软件禁止启动,进而保证了设定的程序能够正常的进行自启动,提升了用户体验。
[0132]进一步的,在上述实施例五的基础上,本实施例六还可将操作系统优化为Windows系统,将操作系统管理工具为Window管理工具WMI。
[0133]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种基于操作系统的程序自启动方法,其特征在于,包括: 基于操作系统管理工具的核心组件监测设定消息事件是否被触发; 如果所述设定消息事件被触发,则基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件; 如果存在关联的动态链接库文件,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口 ; 通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。2.根据权利要求1所述的方法,其特征在于,在基于操作系统管理工具的核心组件监测设定消息事件是否被触发之前,还包括: 注册所述设定消息事件信息到所述操作系统管理工具,其中,所述设定消息事件信息包括所述设定消息事件及与所述设定消息事件关联的动态链接库文件名。3.根据权利要求2所述的方法,其特征在于,所述注册所述设定消息事件信息到所述操作系统管理工具,具体包括: 构造所述设定消息事件的描述文件; 基于操作系统的特定解析工具解析所述描述文件,并获取所述描述文件中包含设定消息事件信息; 依据所述特定解析工具将所述设定消息事件信息注册到所述操作系统管理工具中。4.根据权利要求2所述的方法,其特征在于,在注册所述设定消息事件信息到所述操作系统管理工具之后,还包括: 创建所述设定消息事件关联的动态链接库文件,并在所述动态链接库文件中构建一个操作系统管理工具提供者,其中,所述操作系统管理工具提供者中包含可执行的逻辑语句; 注册所述动态链接库文件的文件信息到操作系统注册表,其中,所述文件信息包括:所述动态链接库文件的文件名、存储位置以及所述动态链接库文件关联的操作系统管理工具公共接口 id。5.根据权利要求1所述的方法,其特征在于,所述基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序,具体包括: 基于所述操作系统管理工具提供者判定所述设定消息事件的触发结果是否满足设定的程序的启动条件; 如果所述触发结果满足所述启动条件,则自启动所述设定的程序。6.根据权利要求1-5任一项所述的方法,其特征在于, 操作系统为Windows系统,所述操作系统管理工具为Window管理工具WMI。7.一种基于操作系统的程序自启动装置,其特征在于,包括: 消息触发监测模块,用于基于操作系统管理工具的核心组件监测设定消息事件是否被触发; 关联文件判定模块,用于当所述设定消息事件被触发时,基于所述核心组件判断所述设定消息事件在所述操作系统管理工具中是否存在关联的动态链接库文件; 公共接口调用模块,用于当存在关联的动态链接库文件时,则基于所述操作系统管理工具调用所述动态链接库文件的公共接口 ; 程序自启动确定模块,用于通过所述公共接口运行所述动态链接库文件中包含的操作系统管理工具提供者,并基于所述操作系统管理工具提供者中包含的逻辑语句确定是否自启动设定的程序。8.根据权利要求7所述的装置,其特征在于,还包括: 消息事件注册模块,用于在基于操作系统管理工具的核心组件监测设定消息事件是否被触发之前,注册所述设定消息事件信息到所述操作系统管理工具,其中,所述设定消息事件信息包括所述设定消息事件及与所述设定消息事件关联的动态链接库文件名。9.根据权利要求8所述的装置,其特征在于,所述消息事件注册模块,具体用于: 构造所述设定消息事件的描述文件; 基于操作系统的特定解析工具解析所述描述文件,并获取所述描述文件中包含设定消息事件信息; 依据所述特定解析工具将所述设定消息事件信息注册到所述操作系统管理工具中。10.根据权利要求8所述的装置,其特征在于,还包括:关联文件创建模块, 相应的,所述关联文件创建模块,具体用于: 在注册所述设定消息事件信息到所述操作系统管理工具之后,创建所述设定消息事件关联的动态链接库文件,并在所述动态链接库文件中构建一个操作系统管理工具提供者,其中,所述操作系统管理工具提供者中包含可执行的逻辑语句; 注册所述动态链接库文件的文件信息到操作系统注册表,其中,所述文件信息包括:所述动态链接库文件的文件名、存储位置以及所述动态链接库文件关联的操作系统管理工具公共接口 id。11.根据权利要求7所述的装置,其特征在于,所述程序自启动确定模块,具体用于: 基于所述操作系统管理工具提供者判定所述设定消息事件的触发结果是否满足设定的程序的启动条件; 如果所述触发结果满足所述启动条件,则自启动所述设定的程序。12.根据权利要求7-11任一项所述的装置,其特征在于, 操作系统为Windows系统,所述操作系统管理工具为Window管理工具WMI。
【文档编号】G06F9/445GK105930190SQ201610270254
【公开日】2016年9月7日
【申请日】2016年4月27日
【发明人】方亮
【申请人】百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1