專利名稱:一種應(yīng)用編程接口控制方法和控制功能模塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Windows應(yīng)用技術(shù),特別涉及一種應(yīng)用編程接口控制方法和應(yīng)用該方法的控制功能模塊。
背景技術(shù):
在Windows程序中,各個(gè)進(jìn)程之間交換數(shù)據(jù),進(jìn)行數(shù)據(jù)通訊,稱為進(jìn)程間通訊。IDispatch(Dispatch接口)是Windows的應(yīng)用程序提供其屬性和方法給外部程序使用其功能的一種方式,這種接口機(jī)制中一個(gè)最重要的函數(shù)是IDispatch∷Invoke,通過(guò)該函數(shù)及其調(diào)用參數(shù)DISPID(一個(gè)數(shù)字號(hào)碼),可以訪問(wèn)到應(yīng)用程序的不同屬性和方法,從而實(shí)現(xiàn)進(jìn)程間通訊。
API(Application Programming Interface,應(yīng)用編程接口)是一個(gè)程序提供給外部程序訪問(wèn)其屬性和方法的一種方式,通過(guò)訪問(wèn)這套接口,可以實(shí)現(xiàn)多個(gè)程序之間的進(jìn)程間通訊,從而達(dá)到交換數(shù)據(jù)的目的。
應(yīng)用編程接口的設(shè)計(jì)方式可以有多種,最常見(jiàn)的windows應(yīng)用編程接口是進(jìn)程外COM(Component Obiect Model,組件對(duì)象模型)接口,進(jìn)程外COM接口是應(yīng)用程序提供給外部應(yīng)用程序使用的COM接口,外部程序使用這些接口必須遵循windows COM管理規(guī)范。Dispatch接口是其中一種進(jìn)程外COM接口。本文中提到的應(yīng)用編程接口都是特指這種進(jìn)程外COM接口。
單實(shí)例指應(yīng)用程序只能同時(shí)運(yùn)行一例,必須在退出當(dāng)前運(yùn)行才能啟動(dòng)另一次運(yùn)行。多實(shí)例指應(yīng)用程序可以同時(shí)啟動(dòng)運(yùn)行多次,每個(gè)實(shí)例對(duì)應(yīng)一個(gè)獨(dú)立的進(jìn)程,如WORD、IE都是多實(shí)例的程序。大多數(shù)軟件都只能在操作系統(tǒng)中運(yùn)行一份實(shí)例,這種單實(shí)例的程序可以實(shí)現(xiàn)一套普通的進(jìn)程外COM接口,并通過(guò)windows的COM系統(tǒng)保證進(jìn)程間通訊的正常進(jìn)行。
Windows COM系統(tǒng)將每一個(gè)COM接口都一一映射到一個(gè)IID,外部程序可以通過(guò)指定IID來(lái)查詢對(duì)應(yīng)的COM接口。因此,多實(shí)例的程序不能簡(jiǎn)單的將其多個(gè)實(shí)例的應(yīng)用編程接口映射到一個(gè)固定的IID,外部程序也不能通過(guò)指定一個(gè)IID訪問(wèn)到多個(gè)實(shí)例的應(yīng)用編程接口。
多實(shí)例的應(yīng)用程序,如果每個(gè)實(shí)例都需要對(duì)外提供應(yīng)用編程接口,那么,每個(gè)接口需要使用不同的IID。這里存在兩個(gè)問(wèn)題1、應(yīng)用程序支持將其接口動(dòng)態(tài)綁定到不同的IID,并注冊(cè)到COM系統(tǒng)中;2、外部程序需要查詢到應(yīng)用程序每個(gè)實(shí)例接口使用的IID。
如圖1所示,為了解決上述中問(wèn)題1,應(yīng)用程序在啟動(dòng)運(yùn)行時(shí)需要先到注冊(cè)表或配置文件中從安裝過(guò)程中登記好的一系列IID中查詢出一個(gè)未使用的IID,并使用其創(chuàng)建應(yīng)用編程接口;或者,臨時(shí)產(chǎn)生出來(lái)一個(gè)新的GUID(GloballyUnique Identifier)作為接口IID,來(lái)創(chuàng)建應(yīng)用編程接口并記錄下來(lái),以便讓外部程序可以查詢。GUID為全球唯一標(biāo)識(shí)符,由16個(gè)字節(jié)長(zhǎng)度的字母數(shù)字串組成,表示形式通常是用橫線連接起來(lái)的32個(gè)字母數(shù)字串,如7111BD1A-7F0B-4CEE-B411-260DADFEFA2A;IID(Interface Identifier)接口標(biāo)識(shí)符,使用GUID來(lái)表示的接口標(biāo)識(shí)符。另外,為了維護(hù)IID的使用情況,在實(shí)例運(yùn)行結(jié)束時(shí),需要在注冊(cè)表或配置文件中注銷(xiāo)對(duì)應(yīng)IID的使用記錄。
如圖2所示,外部程序訪問(wèn)應(yīng)用程序的編程接口時(shí),需要先訪問(wèn)注冊(cè)表或者配置文件,獲取接口IID,再按照正常的COM使用方法調(diào)用接口。
使用以上方案,有下述缺點(diǎn)每個(gè)實(shí)例啟動(dòng)時(shí)都需要查詢注冊(cè)表或者配置文件,建完COM接口之后,需要將自身使用的IID記錄到注冊(cè)表或者配置文件,并且在運(yùn)行結(jié)束時(shí),需要注銷(xiāo)自身IID的使用記錄,系統(tǒng)數(shù)據(jù)的同步處理較為復(fù)雜;同樣外部應(yīng)用程序訪問(wèn)應(yīng)用編程接口時(shí),需要訪問(wèn)注冊(cè)表或者配置文件查詢編程接口的IID;而且如果應(yīng)用程序的實(shí)例意外終止時(shí),自身IID的使用記錄不會(huì)被注銷(xiāo),導(dǎo)致外部程序訪問(wèn)時(shí)出錯(cuò)。
對(duì)于允許運(yùn)行多份實(shí)例的程序需要對(duì)外部程序提供每個(gè)實(shí)例對(duì)應(yīng)的應(yīng)用編程接口,Windows并沒(méi)有提供相應(yīng)的機(jī)制或方法,因此,使用傳統(tǒng)的方法和思路實(shí)現(xiàn)這個(gè)功能會(huì)非常復(fù)雜、繁瑣,而且外部程序要實(shí)現(xiàn)進(jìn)程間通訊的難度也很大。
發(fā)明內(nèi)容
本發(fā)明提供一種應(yīng)用編程接口控制方法和控制功能模塊,以解決現(xiàn)有控制方法復(fù)雜、繁瑣,而且外部程序要實(shí)現(xiàn)進(jìn)程間通訊的難度較大的問(wèn)題。
一種應(yīng)用編程接口控制方法,包括如下步驟S1、捕獲應(yīng)用實(shí)例啟動(dòng)運(yùn)行時(shí)的API接口登記請(qǐng)求,所述API接口用于外部程序訪問(wèn)該應(yīng)用實(shí)例;并S2、為該應(yīng)用實(shí)例產(chǎn)生對(duì)應(yīng)的接口標(biāo)識(shí)符(IID)或獲取該應(yīng)用實(shí)例已有的IID并創(chuàng)建API接口,將該API接口對(duì)應(yīng)該IID登記保存。
所述方法還包括如下步驟S3、捕獲應(yīng)用實(shí)例結(jié)束運(yùn)行時(shí)的API接口注銷(xiāo)請(qǐng)求,并刪除對(duì)應(yīng)的API接口。
所述方法還包括所述API接口和對(duì)應(yīng)的IID登記保存在API接口維護(hù)列表中,該API接口維護(hù)列表中還對(duì)應(yīng)保存有應(yīng)用實(shí)例的綁定信息。
所述方法還包括捕獲外部程序查詢應(yīng)用實(shí)例API接口的請(qǐng)求,該請(qǐng)求中包含應(yīng)用實(shí)例的綁定信息;并根據(jù)所述應(yīng)用實(shí)例的綁定信息從所述API接口維護(hù)列表中查詢對(duì)應(yīng)的應(yīng)用實(shí)例API接口發(fā)送給外部程序。
所述方法還包括當(dāng)查詢到對(duì)應(yīng)的應(yīng)用實(shí)例API接口后,驗(yàn)證該API接口對(duì)應(yīng)的進(jìn)程是否存在和/或正在運(yùn)行,如果全部為是則將所述API接口發(fā)送給外部程序,否則,向外部程序返回錯(cuò)誤指示。
一種應(yīng)用實(shí)例API接口控制功能模塊,包括API接口信息存儲(chǔ)單元,用于存儲(chǔ)登記應(yīng)用實(shí)例的API接口;信息捕獲單元,用于捕獲應(yīng)用實(shí)例的API接口登記/注銷(xiāo)請(qǐng)求、以及外部程序查詢應(yīng)用實(shí)例API接口的請(qǐng)求;控制單元,處理所述信息捕獲單元接受的請(qǐng)求并維護(hù)所述API接口信息存儲(chǔ)單元中存儲(chǔ)的信息;信息發(fā)送單元,用于向外部程序發(fā)送所查詢的API接口或錯(cuò)誤提示信息。
所述控制單元包括API接口登記處理子單元,用于處理應(yīng)用實(shí)例的API接口登記請(qǐng)求并將創(chuàng)建的API接口存入所述API接口信息存儲(chǔ)單元;API接口注銷(xiāo)處理子單元,用于處理應(yīng)用實(shí)例的API接口注銷(xiāo)請(qǐng)求,并所述API接口信息存儲(chǔ)單元?jiǎng)h除注銷(xiāo)的API接口;API接口查詢子單元,用于處理外部程序查詢應(yīng)用實(shí)例API接口請(qǐng)求,并所述API接口信息存儲(chǔ)單元中查詢對(duì)應(yīng)的API接口后通過(guò)信息發(fā)送單元發(fā)送給尾部程序。
API接口狀態(tài)檢測(cè)子單元,用于檢測(cè)API接口對(duì)應(yīng)的進(jìn)程是否存在和/或正在運(yùn)行,如果全部為是則指示所述API接口查詢子單元將所述API接口發(fā)送給外部程序,否則,指示所述API接口查詢子單元向外部程序返回錯(cuò)誤指示。
本發(fā)明的有益效果如下本發(fā)明引入API接口管理程序通過(guò)建立API接口列表維護(hù)應(yīng)用實(shí)例的API接口,應(yīng)用程序?qū)嵗趩?dòng)時(shí)先訪問(wèn)管理程序的外部接口,在管理程序獲取可以綁定的IID,并且進(jìn)行登記工作。在實(shí)例退出時(shí),訪問(wèn)管理程序進(jìn)行注銷(xiāo)工作,整個(gè)過(guò)程不再需要跟注冊(cè)表或者配置文件同步數(shù)據(jù),減少了系統(tǒng)同步處理的復(fù)雜度;外部程序只需要按照標(biāo)準(zhǔn)COM方式訪問(wèn)API接口管理程序即可得到運(yùn)行實(shí)例的API接口,相比現(xiàn)有技術(shù),只需要一個(gè)工作步驟就可以完成,實(shí)現(xiàn)更加簡(jiǎn)單;同時(shí),在運(yùn)行實(shí)例出錯(cuò)時(shí),API接口管理程序的維護(hù)工作,可以啟動(dòng)運(yùn)行實(shí)例或者返回錯(cuò)誤信息給外部程序,從而提高了系統(tǒng)的可靠性,也降低了外部程序訪問(wèn)的實(shí)現(xiàn)代價(jià)。
圖1為現(xiàn)有技術(shù)中,應(yīng)用程序通過(guò)訪問(wèn)注冊(cè)表或配置文件創(chuàng)建及注銷(xiāo)實(shí)例COM接口的流程;圖2為現(xiàn)有技術(shù)中,外部程序訪問(wèn)應(yīng)用程序編程接口的流程圖;圖3為本發(fā)明所述利用API接口管理程序控制API接口的方法示意圖;圖4為本發(fā)明所述應(yīng)用程序通過(guò)訪問(wèn)API接口管理程序創(chuàng)建及注銷(xiāo)實(shí)例COM接口的流程;圖5為本發(fā)明所述外部程序訪問(wèn)應(yīng)用程序編程接口的流程圖;圖6為本發(fā)明所述API接口管理程序維護(hù)接口對(duì)應(yīng)表的示意圖;圖7為本發(fā)明所述API接口控制功能模塊的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
現(xiàn)有實(shí)現(xiàn)方式中,外部程序只能通過(guò)自己查找系統(tǒng)注冊(cè)表或者軟件配置文件得到多實(shí)例程序的編程接口IID,這樣就增大了編程的復(fù)雜性,同時(shí)也存在IID等記錄信息的同步問(wèn)題,如果運(yùn)行實(shí)例意外終止,勢(shì)必造成信息的不同步,會(huì)造成外部程序訪問(wèn)接口失敗,也得不到任何幫助信息。
本發(fā)明針對(duì)上述問(wèn)題,引入API接口管理程序通過(guò)建立API接口列表維護(hù)應(yīng)用實(shí)例的API接口,外部程序只需要按照標(biāo)準(zhǔn)COM方式訪問(wèn)API接口管理程序即可得到運(yùn)行實(shí)例的API接口,相比現(xiàn)有技術(shù),只需要一個(gè)工作步驟就可以完成,實(shí)現(xiàn)更加簡(jiǎn)單。同時(shí),在運(yùn)行實(shí)例出錯(cuò)時(shí),API接口管理程序會(huì)做維護(hù)的工作,啟動(dòng)運(yùn)行實(shí)例或者返回錯(cuò)誤信息給外部程序,從而提高了系統(tǒng)的可靠性,也降低了外部程序訪問(wèn)的實(shí)現(xiàn)代價(jià)。
如圖3所示,本發(fā)明通過(guò)引入一個(gè)編程接口管理程序來(lái)解決傳統(tǒng)方法中的問(wèn)題。API管理程序內(nèi)部通過(guò)維護(hù)一張內(nèi)部的接口管理對(duì)應(yīng)表,來(lái)管理每個(gè)應(yīng)用實(shí)例的API接口及其對(duì)應(yīng)關(guān)系,并且在每次接受訪問(wèn)時(shí)對(duì)于應(yīng)用實(shí)例接口的有效性進(jìn)行檢查,以保證外部程序不會(huì)訪問(wèn)出錯(cuò),表1所示為接口管理對(duì)應(yīng)表的一個(gè)實(shí)例。
表1.接口對(duì)應(yīng)表
其中,通過(guò)對(duì)應(yīng)表中的應(yīng)用程序?qū)嵗壎ㄐ畔?lái)區(qū)分每一個(gè)應(yīng)用程序,類似于編碼信息,可以是一個(gè)數(shù)字串號(hào)碼,如手機(jī)號(hào)碼、QQ號(hào)碼,也可以是一個(gè)字符串如人名、email等等。實(shí)例綁定信息具有唯一性,實(shí)例通過(guò)該綁定信息登記到接口對(duì)應(yīng)表中,外部程序訪問(wèn)時(shí),攜帶要訪問(wèn)的實(shí)例的綁定信息。
API接口管理程序包含處理了所有跟API接口相關(guān)的工作,在整個(gè)操作系統(tǒng)中,只有一份實(shí)例屬于標(biāo)準(zhǔn)的進(jìn)程外COM接口程序,可以使用正常的COM訪問(wèn)控制方法進(jìn)行交互通訊,API接口管理程序完成以下功能1、使用windows COM系統(tǒng)函數(shù)創(chuàng)建應(yīng)用編程接口的IID,系統(tǒng)函數(shù)本身保證創(chuàng)建出來(lái)的IID唯一,不產(chǎn)生沖突;2、創(chuàng)建運(yùn)行實(shí)例的應(yīng)用編程接口;3、控制運(yùn)行實(shí)例的應(yīng)用編程接口的生命周期,既可以啟動(dòng)實(shí)例編程接口的運(yùn)行,也可以終止其運(yùn)行;4、管理維護(hù)接口對(duì)應(yīng)表;5、對(duì)外提供運(yùn)行實(shí)例的接口IID或者接口指針;6、維護(hù)運(yùn)行實(shí)例的應(yīng)用編程接口的錯(cuò)誤處理流程;COM訪問(wèn)控制方法的流程是指windows默認(rèn)的COM訪問(wèn)控制方法,由系統(tǒng)COM庫(kù)自動(dòng)查找注冊(cè)表和內(nèi)核系統(tǒng)的相關(guān)信息而進(jìn)行進(jìn)程外通訊,接口調(diào)用方式表現(xiàn)形式與內(nèi)部接口或者內(nèi)部函數(shù)相似。
如圖4所示,應(yīng)用程序?qū)嵗趩?dòng)時(shí)先訪問(wèn)管理程序的外部接口,在管理程序獲取可以綁定的IID,并且進(jìn)行登記工作。在實(shí)例退出時(shí),訪問(wèn)管理程序進(jìn)行注銷(xiāo)工作。整個(gè)過(guò)程不再需要跟注冊(cè)表或者配置文件同步數(shù)據(jù)。
如圖5所示,外部程序通過(guò)訪問(wèn)管理程序,取得對(duì)應(yīng)的API接口對(duì)應(yīng)用程序?qū)嵗M(jìn)行訪問(wèn)。整個(gè)過(guò)程不再需要跟注冊(cè)表或者配置文件同步數(shù)據(jù)。
外部程序查詢接口時(shí),需要提供一些實(shí)例的綁定信息,管理程序通過(guò)在接口對(duì)應(yīng)表的接口綁定信息中查找這些信息,來(lái)確定外部程序要訪問(wèn)的接口,如果沒(méi)有對(duì)應(yīng)的接口,也可能啟動(dòng)運(yùn)行一個(gè)實(shí)例并創(chuàng)建其對(duì)應(yīng)的編程接口,同時(shí)完成綁定信息和接口的對(duì)應(yīng)關(guān)系,這個(gè)創(chuàng)建過(guò)程的策略可以由外部程序調(diào)用時(shí)指定是否需要。
如圖6所示,API管理程序內(nèi)部通過(guò)維護(hù)一張內(nèi)部的接口對(duì)應(yīng)表,來(lái)管理每個(gè)應(yīng)用實(shí)例的API接口及其對(duì)應(yīng)關(guān)系,并且在每次接受訪問(wèn)時(shí)對(duì)于應(yīng)用實(shí)例接口的有效性進(jìn)行檢查,以保證外部程序不會(huì)訪問(wèn)出錯(cuò)。
有效性檢查是指管理程序查找到了對(duì)應(yīng)接口以后,檢查該接口是否可用,具體可以通過(guò)檢查該接口所在的進(jìn)程是否存在或者處于活動(dòng)狀態(tài)來(lái)進(jìn)行檢查確認(rèn)。
通常檢查進(jìn)程是否存在或者處于活動(dòng)狀態(tài)的方法是通過(guò)枚舉系統(tǒng)的進(jìn)程列表,并在列表中查詢是否存在要檢查的進(jìn)程信息。也可以通過(guò)管理程序和編程接口所在的進(jìn)程相互發(fā)送窗口消息來(lái)檢查進(jìn)程的活動(dòng)情況。還可以在進(jìn)程的應(yīng)用編程接口中提供一個(gè)獨(dú)立的查詢函數(shù),管理程序可以通過(guò)調(diào)用該函數(shù)并得到反饋信息,來(lái)檢查進(jìn)程運(yùn)行情況是否正常,或者,由編程接口所在的進(jìn)程不斷回調(diào)管理程序提供的心跳回調(diào)事件接口,來(lái)維護(hù)進(jìn)程運(yùn)行情況的查詢。還有一些方法是通過(guò)使用共享內(nèi)存、管道或者文件等方式,來(lái)維護(hù)一些同步信息,從而達(dá)到檢查的目的。其中,上述方法中的第一種方法枚舉進(jìn)程列表,比較簡(jiǎn)單有效。
如圖7所示,為實(shí)現(xiàn)本發(fā)明所述方法,本發(fā)明還提供一種應(yīng)用與Windows系統(tǒng)中的應(yīng)用實(shí)例API接口控制功能模塊,包括
API接口信息存儲(chǔ)單元,用于存儲(chǔ)登記應(yīng)用實(shí)例的API接口;信息捕獲單元,用于捕獲應(yīng)用實(shí)例的API接口登記/注銷(xiāo)請(qǐng)求、以及外部程序查詢應(yīng)用實(shí)例API接口的請(qǐng)求;控制單元,處理所述信息捕獲單元接受的請(qǐng)求并維護(hù)所述API接口信息存儲(chǔ)單元中存儲(chǔ)的信息;信息發(fā)送單元,用于向外部程序發(fā)送所查詢的API接口或錯(cuò)誤提示信息。
其中控制單元可以包括以下子單元,分別用于執(zhí)行不同的功能API接口登記處理子單元,用于處理應(yīng)用實(shí)例的API接口登記請(qǐng)求并將創(chuàng)建的API接口存入所述API接口信息存儲(chǔ)單元;API接口注銷(xiāo)處理子單元,用于處理應(yīng)用實(shí)例的API接口注銷(xiāo)請(qǐng)求,并所述API接口信息存儲(chǔ)單元?jiǎng)h除注銷(xiāo)的API接口;API接口查詢子單元,用于處理外部程序查詢應(yīng)用實(shí)例API接口請(qǐng)求,并所述API接口信息存儲(chǔ)單元中查詢對(duì)應(yīng)的API接口后通過(guò)信息發(fā)送單元發(fā)送給尾部程序。
為實(shí)現(xiàn)對(duì)應(yīng)用實(shí)例的檢測(cè),控制單元還包括API接口狀態(tài)檢測(cè)子單元,API接口對(duì)應(yīng)的進(jìn)程是否存在和/或正在運(yùn)行,如果全部為是則指示所述API接口查詢子單元將所述API接口發(fā)送給外部程序,否則,指示所述API接口查詢子單元向外部程序返回錯(cuò)誤指示。
本發(fā)明技術(shù)方案,通過(guò)引入API管理程序,單獨(dú)維護(hù)了接口對(duì)應(yīng)關(guān)系,大大節(jié)省了應(yīng)用實(shí)例開(kāi)發(fā)成本及其運(yùn)行時(shí)的計(jì)算復(fù)雜性,同時(shí)也使得外部程序訪問(wèn)每個(gè)實(shí)例API變得更加方便簡(jiǎn)單,只需要處理接口相關(guān)的工作,不需要涉及到訪問(wèn)注冊(cè)表、配置文件等操作,而且通過(guò)管理程序檢查實(shí)例接口的有效性,可以避免運(yùn)行實(shí)例意外終止所帶來(lái)的訪問(wèn)錯(cuò)誤。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種應(yīng)用編程接口控制方法,其特征在于,包括如下步驟S1、捕獲應(yīng)用實(shí)例啟動(dòng)運(yùn)行時(shí)的應(yīng)用編程接口(API)登記請(qǐng)求,所述API接口用于外部程序訪問(wèn)該應(yīng)用實(shí)例;S2、為該應(yīng)用實(shí)例產(chǎn)生對(duì)應(yīng)的接口標(biāo)識(shí)符(IID)或獲取該應(yīng)用實(shí)例已有的IID并創(chuàng)建API接口,將該API接口對(duì)應(yīng)該IID登記保存。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括如下步驟S3、捕獲應(yīng)用實(shí)例結(jié)束運(yùn)行時(shí)的API接口注銷(xiāo)請(qǐng)求,并刪除對(duì)應(yīng)的API接口。
3.如權(quán)利要求2所述的方法,其特征在于,所述方法還包括所述API接口和對(duì)應(yīng)的IID登記保存在API接口維護(hù)列表中,該API接口維護(hù)列表中還對(duì)應(yīng)保存有應(yīng)用實(shí)例的綁定信息。
4.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括捕獲外部程序查詢應(yīng)用實(shí)例API接口的請(qǐng)求,該請(qǐng)求中包含應(yīng)用實(shí)例的綁定信息;并根據(jù)所述應(yīng)用實(shí)例的綁定信息從所述API接口維護(hù)列表中查詢對(duì)應(yīng)的應(yīng)用實(shí)例API接口發(fā)送給外部程序。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括當(dāng)查詢到對(duì)應(yīng)的應(yīng)用實(shí)例API接口后,驗(yàn)證該API接口對(duì)應(yīng)的進(jìn)程是否存在和/或正在運(yùn)行,如果全部為是則將所述API接口發(fā)送給外部程序,否則,向外部程序返回錯(cuò)誤指示。
6.一種應(yīng)用實(shí)例API接口控制功能模塊,其特征在于,包括API接口信息存儲(chǔ)單元,用于存儲(chǔ)登記應(yīng)用實(shí)例的API接口;信息捕獲單元,用于捕獲應(yīng)用實(shí)例的API接口登記/注銷(xiāo)請(qǐng)求、以及外部程序查詢應(yīng)用實(shí)例API接口的請(qǐng)求;控制單元,處理所述信息捕獲單元接受的請(qǐng)求并維護(hù)所述API接口信息存儲(chǔ)單元中存儲(chǔ)的信息;信息發(fā)送單元,用于向外部程序發(fā)送所查詢的API接口或錯(cuò)誤提示信息。
7.如權(quán)利要求6所述的控制模塊,其特征在于,所述控制單元包括API接口登記處理子單元,用于處理應(yīng)用實(shí)例的API接口登記請(qǐng)求并將創(chuàng)建的API接口存入所述API接口信息存儲(chǔ)單元;API接口注銷(xiāo)處理子單元,用于處理應(yīng)用實(shí)例的API接口注銷(xiāo)請(qǐng)求,并所述API接口信息存儲(chǔ)單元?jiǎng)h除注銷(xiāo)的API接口;API接口查詢子單元,用于處理外部程序查詢應(yīng)用實(shí)例API接口請(qǐng)求,并所述API接口信息存儲(chǔ)單元中查詢對(duì)應(yīng)的API接口后通過(guò)信息發(fā)送單元發(fā)送給尾部程序。
8.如權(quán)利要求7所述的控制模塊,其特征在于,所述控制單元還包括API接口狀態(tài)檢測(cè)子單元,用于檢測(cè)API接口對(duì)應(yīng)的進(jìn)程是否存在和/或正在運(yùn)行,如果全部為是則指示所述API接口查詢子單元將所述API接口發(fā)送給外部程序,否則,指示所述API接口查詢子單元向外部程序返回錯(cuò)誤指示。
全文摘要
本發(fā)明涉及Windows應(yīng)用技術(shù),特別涉及一種應(yīng)用編程接口控制方法和應(yīng)用該方法進(jìn)行控制的功能模塊,引入API接口管理程序通過(guò)建立API接口列表維護(hù)應(yīng)用實(shí)例的API接口,外部程序只需要按照標(biāo)準(zhǔn)COM方式訪問(wèn)API接口管理程序即可得到運(yùn)行實(shí)例的API接口,相比現(xiàn)有技術(shù),只需要一個(gè)工作步驟就可以完成,實(shí)現(xiàn)更加簡(jiǎn)單。同時(shí),在運(yùn)行實(shí)例出錯(cuò)時(shí),API接口管理程序會(huì)做維護(hù)的工作,啟動(dòng)運(yùn)行實(shí)例或者返回錯(cuò)誤信息給外部程序,從而提高了系統(tǒng)的可靠性,也降低了外部程序訪問(wèn)的實(shí)現(xiàn)代價(jià)。
文檔編號(hào)G06F9/44GK1940865SQ20051010812
公開(kāi)日2007年4月4日 申請(qǐng)日期2005年9月29日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者林友堯, 陳啟祥 申請(qǐng)人:騰訊科技(深圳)有限公司