一種基于操作系統的程序自啟動方法和裝置的制造方法
【專利摘要】本發明公開了一種基于操作系統的程序自啟動方法和裝置。該方法包括:基于操作系統管理工具的核心組件監測設定消息事件是否被觸發;如果設定消息事件被觸發,則基于核心組件判斷設定消息事件是否存在關聯的動態鏈接庫文件;如果存在關聯的動態鏈接庫文件,則基于操作系統管理工具調用所述動態鏈接庫文件的公共接口;通過公共接口運行動態鏈接庫文件中包含的操作系統管理工具提供者,并基于操作系統管理工具提供者中包含的邏輯語句確定是否自啟動設定的程序。利用該方法,保證了設定的程序僅在符合啟動條件時才自啟動,有效縮短了電子設備的開機時間,也降低了對系統資源的占用;此外,還避免了安全類軟件對所設定的程序自啟動的監管。
【專利說明】
一種基于操作系統的程序自啟動方法和裝置
技術領域
[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日
【發明人】方亮
【申請人】百度在線網絡技術(北京)有限公司