新四季網

一種Windows控制項屬性的獲取方法和裝置與流程

2023-04-28 04:29:06 1


本申請涉及計算機技術領域,尤其涉及一種Windows控制項屬性的獲取方法和裝置。



背景技術:

Windows控制項從框架實現上可以分為兩類,一類是Windows標準控制項,另一類是產品研發方根據需求開發的非標準控制項。對於Windows標準控制項的屬性,可以採用已有的工具進行識別獲取。然而,對於非標準控制項的屬性,由於其使用非標準框架開發,所以目前還沒有有效的識別和獲取方法。



技術實現要素:

有鑑於此,本申請提供一種控制項獲取方法和裝置。

具體地,本申請是通過如下技術方案實現的:

一種Windows控制項屬性的獲取方法,所述方法包括:

判斷目標控制項是否為Windows標準控制項;

如果所述目標控制項不是Windows標準控制項,則發送控制項獲取請求給安裝所述目標控制項的軟體,以供所述軟體根據所述控制項獲取請求獲取所述軟體的控制項屬性;

根據已知的目標控制項屬性從所述軟體的控制項屬性中獲取所述目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄、存儲路徑以及存儲格式;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控 件屬性,並將所述窗口下的所有控制項屬性以所述存儲格式存儲到所述存儲路徑中;

所述根據已知的目標控制項屬性從所述軟體的控制項中獲取所述目標控制項,包括:

從所述存儲路徑中獲取所述窗口下的所有控制項屬性;

根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控制項屬性,並將所述窗口下的所有控制項屬性返回;

所述根據已知的目標控制項屬性從所述軟體的控制項中獲取所述目標控制項的全部屬性,包括:

接收所述軟體通過進程通信返回的所述窗口下的所有控制項屬性;

根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

進一步地,所述方法還包括:

如果沒有在預設的時間內獲取到所述目標控制項的全部屬性,則重新發送控制項獲取請求給安裝所述目標控制項的軟體。

進一步地,所述方法還包括:

當重新發送控制項獲取請求的次數到達預設的次數時,如果還沒有獲取到所述目標控制項的全部屬性,則返回獲取失敗信息。

一種Windows控制項屬性的獲取裝置,所述裝置包括:

判斷單元,判斷目標控制項是否為Windows標準控制項;

發送單元,在所述目標控制項不是Windows標準控制項時,通過進程通信發送控制項獲取請求給安裝所述目標控制項的軟體,以供所述軟體根據所述控制項獲取請求獲取所述軟體的控制項屬性;

獲取單元,根據已知的目標控制項屬性從所述軟體的控制項屬性中獲取所述 目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄、存儲路徑以及存儲格式;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控制項屬性,並將所述窗口下的所有控制項屬性以所述存儲格式存儲到所述存儲路徑中;

所述獲取單元,具體從所述存儲路徑中獲取所述窗口下的所有控制項屬性,並根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控制項屬性,並將所述窗口下的所有控制項屬性返回;

所述獲取單元,具體接收所述軟體通過進程通信返回的所述窗口下的所有控制項屬性,並根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

進一步地,所述裝置還包括:

重發單元,在沒有在預設的時間內獲取到所述目標控制項的全部屬性時,重新發送控制項獲取請求給安裝所述目標控制項的軟體。

進一步地,所述重發單元,當重新發送控制項獲取請求的次數到達預設的次數時,如果還沒有獲取到所述目標控制項的全部屬性,則返回獲取失敗信息。

由以上描述可以看出,本申請在獲取目標控制項時,可以先判斷目標控制項是否為Windows標準控制項,並在目標控制項不是Windows標準控制項時,通過進程間的通信發送控制項獲取請求給安裝所述目標控制項的軟體,以獲取非Windows標準控制項的全部屬性,從而實現對不同類別控制項屬性的獲取。

附圖說明

圖1是本申請一示例性實施例示出的一種Windows控制項屬性的獲取方法的流程圖。

圖2是本申請一示例性實施例示出的一種終端的結構示意圖。

圖3是本申請一示例性實施例示出的一種Windows控制項屬性的獲取裝置的結構示意圖。

具體實施方式

這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。

在本申請使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的「一種」、「所述」和「該」也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語「和/或」是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。

應當理解,儘管在本申請可能採用術語第一、第二、第三等來描述各種信息,但這些信息不應限於這些術語。這些術語僅用來將同一類型的信息彼此區分開。例如,在不脫離本申請範圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決於語境,如在此所使用的詞語「如果」可以被解釋成為「在……時」或「當……時」或「響應於確定」。

針對上述問題,本申請提供一種控制項獲取方案,可以實現對Windows標準控制項和非標準控制項的獲取。

圖1是本申請一示例性實施例示出的一種Windows控制項屬性的獲取方法的流程圖。

請參考圖1,本申請提供一種Windows控制項屬性的獲取方法,可以應用在終端上,包括有以下步驟:

步驟101,判斷目標控制項是否為Windows標準控制項。如果所述目標控制項不是Windows標準控制項,則執行步驟102。

在本實施例中,在獲取目標控制項時,先判斷目標控制項是否為Windows標準控制項。在本步驟中,可以採用獲取Windows標準控制項的方式獲取所述目標控制項以進行判斷。具體地,可以採用相關技術中提供的Windows標準控制項的獲取工具獲取所述目標控制項,比如:AutoIt工具、WinRunner工具等,本申請對此不作特殊限制。

如果成功獲取到所述目標控制項,則說明所述目標控制項是Windows標準控制項,可以對所述控制項進行測試或者調試。如果沒有獲取到所述目標控制項,則說明所述目標控制項不是Windows標準控制項,執行步驟102。

步驟102,通過進程通信發送控制項獲取請求給安裝所述目標控制項的軟體,以供所述軟體根據所述控制項獲取請求獲取所述軟體的控制項屬性。

基於前述步驟101的判斷結果,如果所述目標控制項不是Windows標準控制項,即無法通過獲取Windows標準控制項的方式獲取到所述目標控制項,則在本步驟中,與安裝所述目標控制項的軟體進行進程間的通信,以獲取所述目標控制項的全部屬性。

在本步驟中,可以通過自定義的交互協議發送控制項獲取請求給安裝所述目標控制項的軟體。所述發送控制項獲取請求可以包括以下兩種情況:

情況一、在所述控制項獲取請求中攜帶有窗口句柄、存儲路徑以及存儲格式,然後將所述控制項獲取請求發送給安裝所述目標控制項的軟體,比如:通過所述軟體對外提供的接口發送所述控制項獲取請求。其中,所述窗口句柄是所述目標控制項所在的窗口句柄。所述安裝目標控制項的軟體在接收到所述控制項獲取請求後,獲取所述窗口句柄對應的窗口下的所有控制項屬性,然後按照所述存儲格式,將所有控制項屬性存儲到所述存儲路徑下。

具體地,所述存儲格式可以為文件格式,比如:xml格式、csv格式等,所述存儲路徑可以為文件路徑。所述軟體將所述窗口下的所有控制項屬性依據所述文件格式生成文件,並將生成的文件存儲在所述文件路徑下,然後返回 確認信息。

情況二、在所述控制項獲取請求中攜帶窗口句柄,然後將所述控制項獲取請求發送給安裝所述目標控制項的軟體。在這種情況下,安裝所述目標控制項的軟體在接收到所述控制項獲取請求後,獲取所述窗口句柄對應的窗口下的所有控制項屬性,然後通過進程間的通信將獲取到的所述所有控制項屬性返回。

步驟103,根據已知的目標控制項屬性從所述軟體的控制項屬性中獲取所述目標控制項的全部屬性。

在本實施例中,一個控制項通常包括有諸多屬性,比如:控制項標題、控制項坐標、控制項句柄等。所述已知的目標控制項屬性可以由用戶預先進行設置,比如:控制項ID等,本申請對此不作特殊限制。基於前述步驟102,當安裝所述目標控制項的軟體根據所述控制項獲取請求獲取所述軟體的控制項屬性後,在本步驟中,可以根據已知的目標控制項屬性從所述控制項屬性中獲取所述目標控制項的全部屬性。

具體地,針對步驟102中發送控制項獲取請求的兩種不同情況,本步驟也可以分別如下兩種情況:

情況一、所述控制項獲取請求包括:窗口句柄、存儲路徑以及存儲格式。在這種情況下,安裝目標控制項的軟體將所述窗口下的所有控制項屬性存儲在所述存儲路徑下,並通過進程間的通信返回確認信息。在本步驟中,在接收到所述確認信息後,可以從所述存儲路徑中獲取所述窗口下的所有控制項屬性,然後根據已知的目標控制項屬性從所述窗口下的所有控制項屬性中獲取所述目標控制項的全部屬性。比如:安裝目標控制項的軟體可以將所述窗口下的所有控制項屬性存儲為列表形式,在該列表中每一行存儲有一個控制項的全部屬性,在本情況下,終端可以遍歷該列表,通常所述已知目標控制項屬性確定所述目標控制項所在的行,然後獲取該行中存儲的全部屬性,以得到所述目標控制項的全部屬性。

情況二、所述控制項獲取請求包括:窗口句柄。在這種情況下,安裝所述目標控制項的軟體將所述窗口下的所有控制項屬性返回。在本步驟中,接收所述 進程返回的所述窗口下的所有控制項屬性,然後根據已知的目標控制項屬性從所述窗口下的所有控制項屬性中獲取所述目標控制項的全部屬性。

進一步地,在本申請另一可選實施例中,設置有控制項獲取的超時機制。具體地,在圖1所示的實施例的基礎上,所述Windows控制項屬性的獲取方法還包括有:

步驟104中,判斷是否在預設的時間內獲取到所述目標控制項的全部屬性。

在本實施例中,可以對步驟103中根據已知的目標控制項屬性從所述軟體的控制項屬性中獲取所述目標控制項的全部屬性的過程進行計時,並判斷是否在預設的時間內獲取到所述目標控制項的全部屬性,如果沒有在預設的時間內獲取到所述目標控制項的全部屬性,則返回步驟102。其中,所述預設的時間可以由開發人員進行設置,本申請對此不作特殊限制。

更進一步地,開發人員還可以設置重試的次數,即重新發送控制項獲取請求的次數。當重新發送控制項獲取請求的次數到達預設的次數時,如果還沒有獲取到所述目標控制項的全部屬性,則可以返回獲取失敗信息。

可選的,在本申請另一實施例中,當步驟101中判斷所述目標控制項不是Windows標準控制項時,可以先判斷安裝目標控制項的軟體是否提供有對其控制項屬性的獲取方式,如果沒有,則執行步驟102,發送控制項獲取請求。如果有,則可以通過所述軟體提供的控制項屬性獲取方式獲取所述目標控制項的全部屬性。舉例來說,假設安裝目標控制項的軟體提供有圖形識別方式,可以根據滑鼠傳入的坐標以定位目標控制項,則當確定目標控制項不是Windows標準控制項時,可以通過所述圖形識別方式獲取所述目標控制項的全部屬性,本申請對此不作特殊限制。

由以上描述可以看出,本申請在獲取目標控制項時,可以先判斷目標控制項是否為Windows標準控制項,並在目標控制項不是Windows標準控制項時,通過進程間的通信發送控制項獲取請求給安裝所述目標控制項的軟體,以獲取非Windows標準控制項的全部屬性,從而實現對不同類別控制項屬性的獲取。

與本申請Windows控制項屬性的獲取方法的實施例相對應,本申請還提供 一種Windows控制項屬性的獲取裝置。本申請所述的裝置可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,本申請Windows控制項屬性的獲取裝置作為一個邏輯意義上的裝置,是通過其所在設備的處理器將非易失性存儲器中對應的電腦程式指令讀取到內存中運行形成的。

請參考圖2和圖3,本申請提供一種Windows控制項屬性的獲取裝置200,可以應用在終端上,所述裝置200包括有:判斷單元201、發送單元202、獲取單元203以及重發單元204。

其中,所述判斷單元201,判斷目標控制項是否為Windows標準控制項;

所述發送單元202,在所述目標控制項不是Windows標準控制項時,通過進程通信發送控制項獲取請求給安裝所述目標控制項的軟體,以供所述軟體根據所述控制項獲取請求獲取所述軟體的控制項屬性;

所述獲取單元203,根據已知的目標控制項屬性從所述軟體的控制項屬性中獲取所述目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄、存儲路徑以及存儲格式;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控制項屬性,並將所述窗口下的所有控制項屬性以所述存儲格式存儲到所述存儲路徑中;

所述獲取單元203,具體從所述存儲路徑中獲取所述窗口下的所有控制項屬性,並根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

進一步地,所述控制項獲取請求包括:窗口句柄;

所述控制項獲取請求,用於供所述軟體獲取所述軟體中該窗口下的所有控制項屬性,並將所述窗口下的所有控制項屬性返回;

所述獲取單元203,具體接收所述軟體通過進程通信返回的所述窗口下的所有控制項屬性,並根據已知的目標控制項屬性從所述窗口下的所有控制項中獲取所述目標控制項的全部屬性。

所述重發單元204,在沒有在預設的時間內獲取到所述目標控制項的全部屬性時,重新發送控制項獲取請求給安裝所述目標控制項的軟體。

進一步地,所述重發單元204,當重新發送控制項獲取請求的次數到達預設的次數時,如果還沒有獲取到所述目標控制項的全部屬性,則返回獲取失敗信息。

上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。

以上所述僅為本申請的較佳實施例而已,並不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀