TW200405695A - Accessibility system events mechanism and method - Google Patents

Accessibility system events mechanism and method Download PDF

Info

Publication number
TW200405695A
TW200405695A TW092109522A TW92109522A TW200405695A TW 200405695 A TW200405695 A TW 200405695A TW 092109522 A TW092109522 A TW 092109522A TW 92109522 A TW92109522 A TW 92109522A TW 200405695 A TW200405695 A TW 200405695A
Authority
TW
Taiwan
Prior art keywords
user interface
information
event
client
events
Prior art date
Application number
TW092109522A
Other languages
English (en)
Other versions
TWI273791B (en
Inventor
Robert Sinclair
Patricia M Wagoner
Brendan Mckeon
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200405695A publication Critical patent/TW200405695A/zh
Application granted granted Critical
Publication of TWI273791B publication Critical patent/TWI273791B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Description

200405695 :馨丨: 明說明 【發明所屬之技術領域】 本發明領域係有關於輔助技術、自動化測試及收集使 用者界面資訊的其它產品以及這些產品與使用者界面資訊 的互動。 【先前技術】 輔助技術(Assistive technology,AT)產品是要用來幫 助在學習、溝通及存取包含在電腦軟體内或由電腦軟體所 呈現的資訊方面需要協助的電腦使用者。·這些產品對於與 電腦界面相關的資訊具有需求。同樣的,現有自動化的測 試產品與使用者界面指令工具對於與電腦界面相關的資訊 亦具有需求。目前,這些產品並沒有足夠使用者界面(user interface,UI)資訊的資源。這三種產品(客戶)種類要求要 有來自於其它地方的支援,使它們能夠:(1)收集有關於 一應用程式的使用者界面的資訊;(2)無論建構該UI所用 的技術為何都可程式化地發現並整合UI元件;(3)產生鍵 盤及指向器的輸入;及(4)瞭解目前有何種行為或功能可 用。目前沒有一單一技術可給予一 AT產品所有這些能力。 又目則的AT產品並不是都可與所有圖形式的作業系統 (Ο Μ谷且缺 < 以集中化的方式來過濾及協調多餘的或誤 導的通知。一項額外的缺點為,目前的自動化與存取基礎 設施是不能擴展的,因此需要〇s層次改變用以添加新的 功能。 3 200405695 又’目前在收集有關於應用程式的使用者界面的資訊 上’ AT產品密需撰寫特殊應用碼用以獲得使用者的資訊。 撰寫此特殊應用碼的過糕是相當耗時的且需要持續性的維 修。目則的自動化基礎設施亦缺少以一致的方式來過滤及 協調多餘的或誤導的事件通知的能力。 通知·(1)在桌面上的任何事;(2)在一特殊處理(如開啟一 文+處理器)的中;或(3)在一特殊處理的處理緒中(如多 個物件在孩處理中工作)。目前,當客戶接受到一事件時, 其接又到發生該事件的一特殊視窗的一視窗把手(windo\ ndU)及指出事件在何處發生吃其它資訊位元。一客戶 可進行一夸 x又處理呼叫用以接受與該事件相關的UI物 」 w利用此物件來進行額外的交叉處理呼叫用以 求關於③物件的資訊。如果該客戶需要五件資訊,然後 孩客戶可;隹h 、 怦, 進仃五個又又處理呼叫。交叉處理呼叫是非常的 ^ ,此使用目前的存取基礎設施來收集U〗資訊的性能 服哭疋非吊的鬲。此種已知的設計被示於第8圖中。一祠 服器應用程式1 2 I + f Μ I件6,—核心程式(kernel)14決 的二客戶必需被通知並送出—事件通知18給一有興趣 跨播s、 〇、該客戶1〇由伺服器應用程式12作出一要求11 服装2、落I件通^ 1 8才目關之物件的處理邊界2。該获 送出•用W 12回送該物件2〇,然後該客戶1〇可開無 飼服』於與發出該事件< UI控制有關之資訊的要求16。 應用程式12將所要求的資訊20回送跨越處理邊肩 200405695 2給客戶2。 另一種目前所用的方式 的一動態鏈結函數庫(.DDL) 項’其需要來自於系統的< 中。第二項,其會產生安全 載入到一應用程式的處理t 訊。第三項,為了要成為該 而被載入到該系統的每—處 客戶應被载入到另一應用程 此外,一系統必需給與 其所想要接受到的能力。在 作出數個交叉處理呼叫,然 該事件有興趣。這需要一可 更有效率的方式過濾且可被 或應用程式事件。又,這需 統用以省卻安全性的考量。 目前,當找尋關於一使 品會被要求用以存取一特定 構。因此,多個UI骨架需 者界面資訊。這些不同的樹 趣的或使用者看不到的資訊 端使用者操控之可見的UI 一樹狀結構存在著需求,其 關於對於AT產品,自 允許客戶碼被載入作為處壤中 。此方式具有數項缺點。第〜 卜作用以將客戶碼載入〜 處逕 性問題,因為一但該客 1,即很難規範其收集何種資 客戶的一有效率的技術, 其必 理中。最好是,只有受信任的 式的處理中。 客戶能夠指明哪些事件通知是 已知的系統中,客戶可能需要 後分析資料用以決定其是否對 實施此事件的機制,其可以— 輕易地更新用以支援新的系統 要一只使用受信任的構件的系 用者界面的資訊時,該AT產 UI骨架(framework)的樹狀結 要有多個樹狀結構來傳遞使用 狀結構可能包含使用者沒有興 ,如隱藏容器物件其管理由終 控制。因此,對於一單一的統 只具有使用者有興趣的節點。 動化的測試工具,及溝通設備 5 200405695 勺需求為要有一解決方案。此解決方案必需能用在所有圖 形式OS技術上且應可允許所有形式的⑴及⑴構件變成 可存取的。 【發明内容】 本發明係關於一種方法及電腦應用程式用來提供使用 者界面資訊給一客戶。在本發明的一態樣中,一事件機制 被提供於一主從(client-server)環境中用以將使用者界 面(UI)中的改變通知一客戶。該事件機制包含一註冊機制 用來讓該客戶註冊及接受有興趣的使用者界面資訊。該事 件機制亦包括用來註冊客戶以接受事件通知及用來在它們 發生時將這些通知傳遞給該客戶的一 Ui自動化客戶。該 UI自動化伺服器額外地接受來自於該UI骨架的通知並包 括一過濾機制用來將該客戶不感興趣的事件去除掉,及一 通知機制用來把剩下來的有興趣的通知通知客戶。 本發明的一進一步的態樣提供一電腦實施的方法用來 收集有關於有興趣的UI元件的資訊。該方法包括接受來 自於客戶之關於被指定的使用者界面資訊的要求及詢問一 UI自動化伺服器使用的UI引擎用以決定該被要求的UI 資訊是近便的(available)。該被指定的UI資訊從該UI自 動化伺服器被送至一 UI自動化客戶β 本發明之額外的優點及新穎的特徵將於下文中加以敘 述,且其中一部分對於熟悉此技藝者而言在閱讀下文後會 變得很清楚,或從實施本發明中可瞭解到。 6 200405695 【實施方式】 舉例性的操作環境 =第1圖顯示一適合實施本發明之計算系統考 該計算系統環境1〇〇只是眾多適合的計算環境中 子其並不是要用來對本發明的用途或功能的範 制。該汁算環境i 0 0不應被解讀為對於舉例性作^ 的任何一被示出的構件或構件組合具有任何的相 要性。 本發明可用一電腦可執行的一般性電腦可執 如程式模組,來描述。大體上,程式模組包括可 的工作或操控特定的資料種類的常式(r〇utine), 件,構件,資料結構等等《又,熟悉此技藝者可 發明可用不同的電腦系統架構來實施,包括手持 微處理器系統,以微處理器為基礎或可程式的消 置,微電腦,大型主機電腦,及類此者。本發明 政式計鼻環境中實施,工作是由遠端處理裝置來 等裝置經由一溝通網路相連結。在一分散式的 中’程式模組可位在包括記憶體儲存裝置在内的 端電腦-儲存媒體中。 參考第1圖’一用來實施本發明的一舉例伯 包括一 一般用途的處理單元120, 一系統記憶體 一系統匯流排121其將包括該系統記憶體13〇在 的系統構件耦合至該處理單元1 20。 :境 100。 的一個例 圍作出限 i環境1 0 0 依性或必 行指令, 實施特定 程式,物 瞭解到本 式裝置, 費電子裝 亦可在分 實施,該 計算環境 本地及遠 系統100 130,及 内的不同 200405695 電腦110典型地包括多個電腦可讀取的媒體。舉例而 言’但不偈限於,t腦可讀取的媒體可包含電腦儲存媒體 及溝通媒體。系統記憶肖130包括揮發性及/或非揮發性 記憶體形式的電腦儲存媒體,如R0M131及RAM132。一 基本輸入/輸出系統133(BI〇S)被儲存在R〇M131中,該 BI〇S包含可在開機期間f助傳送資訊於電腦11〇内的元 件之間的常式。RAM132典型地包含可立即被處理單元12〇 存取及/或目前被處理單元12〇操作中之資料及/或程式模 組。舉例而言,但不侷限於,第1圖中所示的作業系統丨34, 應用程式1 3 5,其它的程式模組1 3 6及程式資料1 3 7。 電腦110亦可包括其它可取下的/不可取下的,揮發 性的/非揮發性的媒體。舉例而言,第1圖中顯示一硬碟 機1 4 1其可從一不可取下的,非揮發性的磁性媒體中讀取 及寫入;一磁碟機151其可從一可取下的,非揮發性的磁 碟152中讀取及寫入;及一光碟機155其可讀取或寫入一 可取下的,非揮發性光脅片156,如一 CD-ROM或其它光 學媒體。其它可被使用在該舉例性的作業環境中之可取下 的/不可取下的,揮發性的/非揮發性的電腦儲存媒體包 括,但不侷限於,磁帶匣,快閃記憶體單元,數位影音光 碟,數位視訊磁帶,固態RAM,固態R〇M,及類此者。 該硬碟機1 4 1典型地經由一不可取下的記憶體界面,如界 面140,而連接至該系統匯流排1 2 1 °磁碟機1 5 1及光碟 機1 5 5典型地是經由一可取下的記憶體界面,如界面1 5 〇, 而連接至系統匯流排1 2 1。 8 200405695 乂上所白々-_τν 、k欣 許麻+ 不於第1圖中的裝置及與它們相關的電 月街错存媒體提供一 指人,> 電私1 1 0非揮發性之電腦可讀取的機器 癱斑:貪料結構’程式模組,及其它資料的儲存處。例如, 硬碟機141 # si七、 ^ 來儲存作業系統144,應用程式145,其 匕程式模組146,及巷々咨处 ,._ 次程式資料147。應注意的是,這些構 件可以與作酱έ , n 系”、’死1 3 4,應用程式1 3 5,其它程式模組1 3 6, 及程式資料M 7 h m 、 ^目同或是不同。典型地,儲存在RAM中 <作業系統,應用兹4 ^ 程式,其類此者為從磁碟機141讀取之 相對應的$妇;,典二、 相 ’、統程式,或資料的一部分,這些部分隨著所 心要的功能而在大小及範圍上有所不1¾。作業系統144, 底用程式145 ’其它程式模組146,及程式資料147在本 文中被給與不同的編號用以顯示它們可以是不同的拷備。 使用者可經由輸入裝置,如鍵盤1 6 2 ;平常被稱為滑鼠, 軌跡球或觸控板的指標裝置161;無線輸入接收裝置163 ; 或播線來源,如一遙控器,來將指令及資訊輸入至電腦 110°其它的輸入裝置(未示出)可包括一麥克風,搖桿, 遊戲板’衛星圓盤,掃描器及類此者。這些及其它的輸裝 置通常都是經由一耦合至該系統匯流排1 2丨之輸用者輸入 界面160而耦合至處理單元12〇,但亦可經由其它界面及 匯泥排結構,如一平行埠,一遊戲埠,IEEE1394埠,或 一萬用串接部(USB)或紅外厭(^以流排。一監視器191 或其它種類的顯示裝置亦經由一界面,如一視訊界面 190,而連接至該系統匿流排ι21。除了監視器之外,電 腦亦可包括其它的週邊輸出裝置,如喇队197及印表機 200405695 196,其可經由一輸出週邊界面195而被連接。 在本發明中的電腦110將使用連接至一或多個遠端電 腦,如遠端電腦1 8 0,之邏輯連線而在一網路環境中作業。 遠端電腦180可以是一個人電腦,且典型地包括上文中提 及與電腦11 0有關的所有或許多元件,雖然只有記憶儲存 裝置181被示於第1圖中。示於第1圖中之邏輯連線包括 一局部區域網路(LAN) 1 7 1及一廣域區域網路(WAN) 1 73, 但亦可包括其它網路,如連接至一都會區域網路(MAN), 内部網路,或網際網路。 當使用在LAN聯網環境中時,電腦11 〇經由一網路 界面或擴充卡170連接至LAN171。當使用在WAN聯網 環境中時,個人電腦11 0典型地包括一數據機1 72,或其 它機構,用以建立在WAN 1 73,如網際網路,上的通訊。 數據機172(其可以是内建或外接式)經由一網路界面ι7〇 或其它適當的機制而被連接至系統匯流排1 2 1。數據機1 72 可以是一纜線數據機,DSL數舉機,或其它寬頻裝置。 在一聯網的環境中,與電腦11 〇相關的程式模組或程式模 組的一部分可被儲存在遠端記憶儲存裝置中。舉例而言, 但不侷限於’第1圖顯示遠端應用程式185是位在記憶裝 置1 8 1中。應被瞭解的是,圖中所示的網路連線是舉例性 的且建立電腦之間的溝通鏈之其它機構亦可被使用。 雖然電腦1 1 0内部的許多其它内部構件未示出,但熟 悉此技藝者應可瞭解的是這些構件的連線都是習知的。例 如’將許多擴充卡,如電視轉接卡及網路界面卡,包括在 10 200405695 一電腦1 1 0中是習知的。因此,關於電腦11 〇的内部細節 將不在本文中加以說明。 存取系統結構 如第2圖所示的,一存取系統2 0 0與一客戶環境3 〇 〇 及一祠服器環境400互動。該存取系統200可在第1圖所 示的電腦環境1 0 0中實施。存取系統2 0 0包括一客戶侧的 存取界面220以方便與客戶300互動,一伺服器側存取界 面230以方便與伺服器環境4〇〇互動,及一存取系統核心 201。本發明的存取系統2〇〇提供新的應用程式界面 (API)’界面’及符號(metaph〇r)用以程式化地存取一使用 者界面(UI)。 客戶環境300最好是包括一輔助技術(AT)產品或自動 化的UI測試工具。伺服器侧4〇〇如第2圖所示的可實施 許多不同的技術。一伺服器系統4丨〇包括一擴充卡4丨2及 一核心414,其為第一類的m。一伺服器系統42〇包括 一代理構件422及控制424其為第二類UI,如在微軟公 司所販售之微軟作業系統產品中的win32 。該伺服器 系統430包括一擴充卡432及内部〇Μ 434 ,其為第三類 UI 〇 如第3圖中所示的,一包括在該存取系統2〇〇内的事 件機制210依賴一 UI自動化客戶202及一 m自動化伺 服器204用以方便與客戶環境3〇〇及伺服器環境4⑼互 動。該UI自動化客戶2〇2及m自動化伺服器將於 下文中參照本發明的事件機制21〇詳細地加以說明。本發 11 200405695 明的存取系統2 0 0給與客戶(AT產品)3 0 0以下的能力:(j) 收集有關於應用程式的使用者界面;(2)程式化的發現及 詢問UI元件’而不論用來建夠該UI的技術為何;(3)產 生键盤及指向器輸入;(4)暸解何種行為或功能是目前近 便的(available)。存取系統200允許應用程式將他們本身 及其構件變成是近便的(available)。。示於第2及3圖中 的結構促成了存取系統200的五種主要態樣,即:(1)邏 輯UI樹狀結構;(2)控制模式;(3)事件機制;(4)輸入API(在 此文件中並沒有涵蓋到);及(5)特性。 UI存取邏輯樹狀結構222 該存取系統200的一整合的構件為邏輯樹狀結構 222,其例子被示於第4(D)圖中。該邏輯樹狀結構222被 包括在該客戶側的存取界面220中。 該邏輯樹狀結構222為基礎的UI元件結構的一經過 過濾的景觀,並不是一必需被控制或應用程式開發者所實 施的一分離的樹狀結構。而是’其關掉(key off)數個習知 的特性,如插入及反插入,其代表一結構元件是否應被曝 陋在該邏輯樹狀結構222中。該存取系統核心201吸收此 資訊用以產生該經過過濾的UI邏輯樹狀結構222,其接 著被呈送至該AT產品或測試劇本。 該邏輯樹狀結構222為元件的一樹狀結構,每一元件 代表一控制,在一控制中的一個項目,或一成群的結構, 其可以是一對話,方框,或框格。該邏輯樹狀結構222的 結構應如使用者可察覺的來呈現該應用程式的UI(即使該 12 200405695 等控制實際上是使用一不同的基礎結構來實施的亦無 妨)。該樹狀結構是很穩定的,不隨時間改變。只要_應 用程式對於使用者而言看起來都一樣,則代表該應用程式 之該邏輯樹狀結構222應保持一樣,即使是該應用程式隱 藏在幕後的實施細節已經改變亦無妨。因結構及實施理由 而存在之原本的元件,如在微軟 OS 產品中— τ 一喊 ν 的’’ShDocView”視窗即不應出現在此樹狀結構中,因為使 用者並不會察覺到它們。 該邏輯樹狀結構222是從多個片段建構而成的_單— · 的樹狀結構,其能夠統一多個不同的處理使得它們對於客 戶而言是一樣的。該邏輯樹狀結構22 2讓大量取得成為可 能且能夠獲得一長列特性的數值。在使用者已請求一交叉 處理呼叫以獲得該等數值時,該存取系統2〇〇將經由使用 該邏輯樹狀結構222來取得它們。 不像在習知系統中地被建構在一個步騍中者,該邏輯 樹狀結構222是從被用來建構一原本的樹狀結構(naUve tree)之片段所建構成的。如第5圖所示的,三個主要程 序建構起該邏輯樹狀結構222。在程序72中,該存取系 鲁 統200找到基礎的邏輯之原本的元件(native eiement)並到 達該原本的樹狀結構,如第4 圖所示。在程序74中, 該存取系統200結合遠本的元件用以形成新的原始的樹狀 結構20,如第4(B)圖所示。最後,在程序76中,該邏輯 j 樹狀結構222則是藉由將在該原始的(raw)樹狀結構20中 之沒有興趣的構件隱藏起來而被獲得,如第4(D)圖所示。 13 200405695 第(A)圖顯示出兩個原本的樹狀結構1 0及1 4它們是 由基礎的技術的原本的元件所建構成的,如 Win32 UI或 任何可用的UI。該原本的樹狀結構10包括一親代(parent) 節點11及多個子代(children) 12其彼此之間具有不同的關 係。相同地,原本的樹狀結構1 4包括一親代節點1 5其具 有多個子代節點1 6。該等子代節點1 6可被描述為彼此的 兄弟姊妹。 如第4(B)圖所示的原本的樹狀結構10,14可被結合 成為一原始的樹狀結構20。原始的樹狀結構包括一親代 節點21,其具有兩個子代節點22及30。子代節點22子 孫23-29,而子代節點30具有子孫31-33。此原始的樹狀 結構20是原本的樹狀結構10與14的結合,其中原本的 樹狀結構 10上的節點形成節點 22-29,而原本的樹狀結 構14上的節點形成30-33。 藉由第 4(C)及 4(D)圖所示的方法,該原始的樹狀結 構20被轉變為邏輯樹狀結構222。為了要將原始的樹狀 結構20變成邏輯樹狀結構222,開發者可將暗示插入到 樹狀結構中。開發者可將原始樹狀結構2 0内的節點標記 為”自我隱藏’’或”自我隱藏及子代”或”隱藏子代節點”,等 等。開發者亦可將節點橫向移動或將節點置於子代節點之 前。在原始的樹狀結構20中的這些”暗示”與變化被用來 形成該邏輯樹狀結構222。例如,在第4(C)圖中,一開發 者將原始的樹狀結構20的節點24-26及33標記為沒有興 確趣的,如方塊40及41所示。典型地,包含了不會讓使 14 200405695 用者看到的开& μ AAr 、 件的郎點都被標記為沒有興趣的。與可看見 、·相關聯的節點典型地被認為是有興趣的且將被包括 在該邏輯樹狀結構222中供AT客戶300使用。如第4(D) 圖中所示的,趾* 很為沒有興趣的節點並沒有被包括在該邏 輯樹狀結構222中。 存取系統200使用該邏輯樹狀結構222來找尋與事 該系統的狀態,物件的位置有關的資訊及與控制有關 的資訊。已知 〜 的系統並不具有在它們的樹狀結構内找尋的 :力。該邏輯樹狀結構222可根據客戶的喜好被巡航並不 論伺服考办丨ΑΑ π ° 的應用程式是在使用中與否都能夠提供資訊。 在操作時,如果客戶3〇〇需要獲得一應用程式的使用 者"·的資句沾 %_r 的话’客戶300找尋一按鈕來按壓並察看在該按 ^上的女令》 . 予。客戶300將會呼叫一 API,,找尋一元件,,。該 API會將 數值回送,該數值相應於該客戶侧界面220的 邏輯樹狀結構222内的位置。經由該邏輯樹狀結構222, 存取系統2〇〇可將該ui的摘要送給該客戶而不管該應用 、式疋否在使用中皆可。該摘要模式包括一名單框,按鈕 或其匕UI構件可能具有之結構,特性,事件,及功能。 ^ 該邏輯樹狀結構222是一單一的統一樹狀結構,其為 該UI的邏輯表示且被形成為一只包括客戶300有興趣的 元件的形狀。因此,與其要求AT產品來過濾ui元件的 結構組織並在呈送給終端使用者的模式中猜測,該邏輯樹 ϋκ λ, 、。構222則是呈現一組織其密切地與被呈送至終端使用 者的結構相符。這可大大地簡化AT產品描述υΐ給使用 15 200405695 #的作並有助於使用與應用程式互動β 因為此邏輯樹狀結構222為該存取系統200的一基礎 部分’所以存取系統200的所有其它構件都被設計成從該 邏輯樹狀結構222工作。例如,第6圖顯示一簡單的對話 框60 ’其看起來具有一非常簡單的結構。然而,當經由 目前存在的存取技術來觀看時,該對話框6〇的結構是意 料之外地複雜。其包含了一 ΑΤ產品必需加以過濾的264 個物件用以找出對終端使用者而言是有意義者。藉由該存 取系統200及對於邏輯υϊ樹狀結構222的支援,擁有此 對話框60的開發者可設定數項特性來將第6圖中下列結 構呈現給AT產品3 0 0。 如第6圖中所示的,對於一 ”執行’’對話而言,開發者 可將該飛行的視窗圖形62及在63的”Type the name of program, folder, document, or internet resource and widows will open it for you”標示為有興趣的。開發者亦可將包 括筆Λ板’文子’計算機等在内之聯合框64,及〇κ65, 取消6 6及瀏覽6 7按鈕標記為有興趣的^這提供開發者一 低成本的機制來將它們的元件組織加標籤,藉以經由m 存取系統200來產生它們的應用程式的邏輯表示。每 一被顯示的特徵都可用以節點來表示,其與該邏輯樹狀結 構222中的其它節點之間具有一特定的關係。此邏輯表示 給測試團隊及給AT產品或客戶3 〇 〇提供了一立即的好 處。 一組API可讓課戶300到達該樹狀結構。功能包括: 16 200405695 (1)來自於點對點的邏輯元件;(2)來自&事件的邏輯元 件;及(3)目前隹 、 “、、點所在的邏輯元件。如上文提及的,一 邏輯元件代表—UI構件,可能是-控制,-控制的-部 ^或谷器或邏輯群(即,對話,框格,方框)。控制以 匕們的功能而言變化非常大。因此,不同的界面被用來呈 現與控制的特殊種類有關的功能。這些特殊控制的界面是 :-共同的基本界面導出的,其代表所有控制的共同功 %該共同的基本界面包含:⑴巡航該邏輯樹狀結構222 的方法’(2)取得特性數值的一般方法;及⑴存取被支援 的特殊控制界面的方法。在巡航該邏輯樹狀結構⑵時, 每-基礎的應用程式m技術將提供其本身的技術來巡 航。 雖然該邏輯樹狀結構222是使用者最有興確的,但該 原始的元件樹狀結肖2G亦提供了 —些重要的功能。雖然 該邏輯樹狀結構222只包含使用者有興趣的元件㈣原 始的元件樹狀結構20包含代表該基礎骨架的實施結構的 節點,如’即點22。對於一 Win32 m片段而言此樹狀結 構將包含代表HWND㈣點。在某些態樣令該原始的 元件樹狀結構20是介於該邏輯樹狀結構2〇〇與基礎的°骨 架本身的原本的元件樹狀結構之間的,半途房子’二該原二 的元件樹狀結構20被用作為建構該邏輯元件樹狀結構二 的基礎,且該處為原本的元件首先插入該系統中的點 該廣始的元件樹够結構20亦可被用來除錯及測二。 其在指出或描述-特定的問題節點所在之處是很有用的。 17 200405695 在一基礎的原始元件節點上的功能包括:巡航該原始的元 件樹狀結構的方法;跳至一相應的邏輯元件(如果存在的 話)的方法;包含此元件的,除錯字串’的特性,如HWND 節點的’’HWND 0x483FE” ;及其它,幕後基礎設施,方法。 這些方法讓命中測試及定位;事件;及將骨架可輕易提供 的特性曝露出來成為可能。 該原始的元件樹狀結構20包含節點22-33,它們代 表來自於不同的成像引擎(rendering engine)的元件。該該 原始的元件樹狀結構被用作為成像引擎的起點用以將它們 插入到該存取系統200中且是由質輕的配接器物件建構成 的,其將原本的元件,如來自於 Win32的 HWND,配接 成為一統一的邏輯樹狀結構222。其被額外地用來處理寄 生(hosting)轉換,即一項技術寄生另一項技術。因為該該 原始的元件樹狀結構20是建構該邏輯樹狀結構222的基 礎,所以其可被用來檢查未被說明元件。該原始的元件樹 狀結構20可進一步被用於其它類似基礎設施的工作上: 像是提供某些基本的元件1D及提供某些基本的骨架元件 特性,如被聚焦的,被產生作用的及位置的特性。 該該原始的元件樹狀結構2 0並不是AT產品或客戶 300的主要資訊來源,沒有被用於邏輯巡航及沒有被曝露 給使用者。該該原始的元件樹狀結構2 0亦不能被用來補 捉在樹狀結構中的一元件位置,使得其可在未來的某些時 間點被回送。該邏輯樹狀結構2 2 2實施所有這些功能。 該該原始的元件樹狀結構20典型地可由基礎的成像 18 200405695 技術的原始元件(HWND,Element)加以機械式的建構,而 無需暸解所代表該等邏輯元件。因此其可被用來找尋尚未 在該邏輯樹狀結構222中被說明之原始的元件。該該原始 的元件樹狀結構20為一有用的除錯及診斷工具,因為其 允許一待補捉之節點位置之’堆疊傾倒(s t a c k d u m p) ’式的 描述。又,已知的系統的樹狀結構是以碼特定要件為基礎 且很難用不同的技術來實施。本發明使用一一般性的摘要, 元始元件’式,其可用任何基礎的成像技術來實施或利用 任何基礎的成像技術^ 為了要或得該原始的元件樹狀結構,呼叫一原始的元 件根將會得到一桌面元件,其藉由確定其親代為null且 其它的節點將它當作它們的最終的始袓而被確認。為了要 獲得其它元件,呼叫一方法用以獲得一來自於一被指定點 的原始元件將會使用有效的螢幕條件來回送該元件。在獲 得該原始的元件樹狀結構之後,其可藉由該等元件(親代, 兄弟姐妹及後代元件)的檢查而被檢查及確認。 在操作時,客戶300可使用關係來巡航該原始的元件 樹狀結構20 :如親代;下一代兄弟姐妹,上_代兄弟姐 姝,第-個小孩,最後一個小孩等。客戶3〇〇然後可從該 原始的元件跳至該邏輯樹狀結構222的對應邏輯元件。 事件機制 -當-客戶300需要被告知事件資訊時,客戶3〇〇能夠 =υι自動化客# 2Ό2來註冊,如第3圖所示,用以獲 得貝訊客戶3 〇〇指定其所想要接受的物件資訊,它想要 19 200405695 該資訊到何處’及它相主彡 匕想要侍到的特性名單。該客戶的要求 會到υι自動化客戶2〇2虛 ^ % 备戶2G2處。u!自動化客戶 桌面上的任何處理。續』皿視在 μ υί自動化伺服器204追蹤此 戶300在傾聽並知道如 二+ 道如何回到UI自動化客戶202。該⑴ 自動化客戶 202將坌玲簡& 將客戶興趣通知該引擎2〇6,使得m 擎2 06得以知道何時蔣塞彳生▲ n時將事件告知該UI自動化伺服器2〇4。 該m引擎不必運用該客戶通知而是可以選擇不要一直 將事件通知該m自動化饲服器2〇4,或是只有在客戶傾 聽任何事件時才通知該UI自動化伺服器。如果該m引 擎想要只有在 客戶令Μ骑重JA- tfdb 事件時才啟動ui自動化伺服器 通知的話,則該告知是很有用的。該ΙΠ引擎可避免m 速度的變滿且避免將不需要的碼模組載入。 該UI引擎206然後將一 UJ事件通知該⑴自動化伺 服器204。該UI自動化飼服器2〇4將該被要求的邏輯事 件回送給該客戶300並將包括該客戶3〇〇所要求的事件的 特性在内之資訊送給該客戶3〇〇 ^該⑴自動化伺服器2〇4 決定什麼資訊是在客戶要求的範圍之内且只對有興趣的資 訊形成一邏輯事件。形成一邏輯事件包括在U〗自動化伺 服器側預取得(pre-fetching)該客戶已指示其將會在處理該 事件時使用到的特性組。例如,該UI自動化伺服器204 可發現(discover)—聯合框(comb〇 box)的邏輯事件。該範 圍將會是該聯合框或其子代。客戶3 〇 〇可要求子代/親代/ 相依者用以界定在註冊階段的範圍。 在該UI自動化伺服器2〇4決定資訊是否在被要求的 20 200405695 範圍之内之後,其即建構一邏輯元件。該自動化客戶 202藉由與目標應用程式交談,接受來自於該υι自動化 祠服器204之被要求的資訊,及將物件導引至客戶3〇〇上 的一適當的空間,來服務客戶300。 該UI自動化伺服器204是在客戶3〇〇註冊要接受事 件資訊時才被產生的。例如,一 tn引擎2〇6正在執行 Microsoft Word的文字處理應用程式。客戶3〇()已註冊進 行名稱特性更改。1¾客戶的註冊造成該⑴自動化祠服器 2 04被產生。該客戶的註冊亦告知該奶引擎開始將 名稱特性通知1¾ υι自動化飼服器2〇4。該m引擎2〇6不 會得到範圍資訊。1¾ m引擎2G6呼叫該㈣器侧的一 I該UI引擎206指明:⑴哪個特性被改變;⑺該特 性的新數值;及(3)也許還有該舊的數值。該⑴自動化何 服器204根據該客戶3〇〇有興趣的事件被產生,因此知道 有興趣的事件,’客戶,及範圍,因此其知道是否有 任何客戶300對被產生的邏輯元件有興趣。如果有多於一 :的客戶300註冊了具有一特殊的m自動化飼服器204 沾事件且客戶300已註冊了相同的事件且要求用該被回送
的邏輯元件大量擷取特性的衽,A 14的活,則當該UI自動化伺服器 204將一事件送回給客戶3〇〇時每一客 到用該邏輯元件回送之一 侍 致的被要求的大量取得的特性。 對於每一傾聽的客戶3〇〇而言,該則動化飼 2〇4藉由將與該事件相關 相關的邏輯疋件送給該客戶來通知該 客戶…則動化词服器204只產生一邏輯元件。 21 200405695 相對於目前的技術而吕這是一項進 一办 孭進步,在傳統的技術中每 客戶300將需要要求一份有關該塞 ,關这事件的源頭之物件的副 本〇 如果UI引擎206在客戶註冊事 . f 1干時沒有利用UI自 動化客戶的告知的話,則該Uj引擎 7丨手2U6可詢問該ui自 動化伺服器204是否有任何的存取宏玲+ 刃仔取客戶300在傾聽及是否 沒有客戶在傾聽,然後可避免產生資
凡压王貧訊並將其送至該UI 自動化伺服器204。例如,一螢暮讀&^ 赏取者為客戶300並指 定它想要資訊去何處,該焦點改變物件以接受事件,及有 興趣的特殊特性名單。該UI引擎2〇6妯止土 0 l 7丨手被告知且知道其應 將事件送至該m自動化伺服器204。該⑴自動化伺服器 2〇4轉變為一習知的界面並將該事件與物件送至該自 動化客戶202。該UI自動化客戶2〇2將該物件導引至該 客戶300上的一適當的空間。 上述的構件藉由消除事件在核心程式(kuMD中之中 心貯藏處。該m自動化伺服器2〇4知道所有客戶有 興趣獲得關於其正在執行的内容的資I。消除核心程 藏處亦產生了更加a, 7 旯加點對點(peei>t〇-peer)式的互動, UI自動化伺服器,〇 4奢锬 氏窃如04實踐了以前在核心程式中 能。本發明的存取糸 、 取系統200給予客戶3〇〇能夠指 其想要看的能力,俅俨晶飱θ Τ麼疋 使付過濾疋在使用該Uj自動化 204的伺服器側被完成。 』服15 第7圖為一流程圖,其顯示在事件註冊及通知 涉及到的程序。在牛跡ζ ^ ^ Ψ 在步驟80,客戶3〇〇要求事件通知。 22 200405695 不驟82,該UI自動化客戶202將此要求送至該ϋΐ自動 化伺服器204。在步驟84,該m自動化客戶告知识引 擎它需要通知。在步驟86,該m自動化伺服器2〇4接受 來自於υι引擎206的通知。在步驟88,該m自動化伺 服器204過濾接收到的資訊。在步驟,如果接收到的 資訊被發現是客戶不感興趣的資訊的話,則該自動化 伺服器2〇4即拋棄該資訊並在步騍92記續等待通知。或 者,如果在步驟90發現該資訊是客戶有興趣的資訊的話, 則該υι自動化伺服器204會在步驟94產生一邏輯元件 並將其送至UI自動化客戶202。在步驟96,該m自動 化客戶202將接收到的資訊放在客戶3〇〇上的適當位 處。 存取系統200的事件機制21〇讓客戶3〇〇可以註冊以 接收關於UI中之特性改變,在控制結構中的樹狀結構改 變,多媒體事件,及相關資訊的事件通知。如果沒有這些 能力的話,則客戶300就必需持續地探詢(p〇u)系統中的 所有UI來瞭解是否有任何的資訊,結構,或狀態已改變。 存取系統200的事件機制210亦允許客戶3〇〇可接受不處 理(〇ut-of-process)的事件,要求將與該事件通知一起被回 送至特性的集合,及註冊事件在多個元件上。 該事件機制210曝露出:AT產品及測試應用程式用 來注冊事件的界面;AT產品實施在物件上用來接收事件 通知的界面;及控制實施者用來將UJ事件通知事件引擎 的界面《該事件機制2 1 〇被用來允許AT產品及測試應用 23 200405695 程式接收事件,其與用來給予XJI的UI引擎無關,且允 許AT產品及測試應用程式追蹤上層應用程式及焦點,不 論其基礎计術為何。 第2圖顯示客戶300是如何與存取系統200互動。事 件父叉處理的泛用管理(global management)是不存在的。 而是’每一存取系統客戶300或伺服器400都具有其本身 的情況。客戶應用程式只接受支援該存取系統200的應用 程式的事件。為了要在一應用程式中開始使用存取系統事 件,客戶 3 00可作下列四件事情中的一項:(1)使 用 ”AddTopLevelWindowListener,,API 來發現出現在桌面 上及在該事件的處理器中的新UI,註冊其它事件及以此 機構接受來自於任何處理的事件;(2)使用搜尋(Find) API 中的一者來找尋有興趣的UI並鎖定一特定的UI為目標; (3)使用某些其它的機構來發現有興趣的uj,如尋找一視 窗把手或在螢幕上的一個點,及使用該把手或點來要求一 邏輯元件作為傾聽事件的參考;或(4)使 用”AddFocusChangeListener,,API來追蹤輸入焦點及註冊 在目前具有焦點之UI上的事件。 一上層視窗是一裸窗其根源為桌面。,,開啟,,一詞係指 一新的上層視窗出現在使用者面前。”關閉,,一詞係指一上 層視窗消失掉。
存取系統伺服器側界面230包括兩個API用來通知 該存取系統200事件已被加入或移除。該UI自動化客戶 在客戶註冊及取消註冊事件時呼叫這些API。這讓該UI 24 200405695 引擎206能夠取得有關於哪些存取事件在其本身的情況下 被要求的資訊。 在可適用時,事件與來自於應用程式的邏輯元件樹狀 結構222的邏輯元件相關連' 當邏輯元件不適用時,事件 與一人類可讀取的字串或代表一事件的來源之其它已知的 物件相關連。事件機制210根據使用者提供的偏好來自事 件註冊期間來進行過濾。藉由使用在伺服器處之客戶的過 濾偏好,事件機制210在產生事件相關的資料及將其跨處 理送至客戶之前即可藉由減少跨處理呼叫的次數來改善處 理外(〇ut-0f-process)的性能。事件機制21〇提供指定一邏 輯元件的特性的方法,這些特性是在事件註冊期間該事件 所感興趣的。這可進一步減少跨處理呼叫的次數。事件機 制210可在主要作業系統(〇s)無需改變下擴充。雖然事件 機制210可使用被管理碼來實施,未改變的應用程式可經 由COM交互作業性(interoperability)來存取它。 AT客戶3 0 0實施兩種工作來處理事件:(丨)事件註冊; 及(2)在一回呼叫(callback)中處理該事件。這兩個工作的 一個重要的要求為可在被管理的及未被管理的碼中使用。 在本發明的一實施例中,客戶3〇〇在事件的註冊期間傳遞 界面。客戶300傳遞在註冊時實施習知的界面的物件以及 UI引擎206在這些界面上回呼叫用以通知該傾聽者。在 該邏輯元件樹狀結構222中有一來源物件的例子中,每一 回呼叫都接收該來源元件與一額外的參數。 AT產所實施的習知界面被用作為回送事件的途 25 200405695 徑。以下的各節顯示某些種類的事件,註冊的情況及事件 是如何被接收到的。 1.上層視窗搴侔 上層視窗事件包括與選單及聯合框下拉(comb〇 b〇x dropdown)或以桌面作為一親代(parent)之任何特徵相關的 事件。在本發明的一實施例中 , AddTopLevelWindowListener方法被用來接收上層視窗被 開啟及關閉的通知。呼叫AddTopLevelWindowListener將 可獲得在目前的桌面上之新的上層視窗開啟或上層視窗被 關閉的通知。RemoveTopLevelWindowListener 方法提供 一個機制來停止接收在桌面上的上層視窗被開啟,關閉的 通知。此方法使用一回呼叫物件來認出傾聽者。因此,被 傳遞至 RemoveTopLevelWindowListener方法的物件與被 傳遞至AddTopLevelWindowListener的物件是相同的。相 同地’當一上層視窗已被關閉時,一
OnTopLevelWindowClosed方法可被該存取系統200所呼 叫。為了要接收這些通知,客戶_ 300 會呼叫
AddTopLevelWindowListener 方法。 2 ·焦點拿件 客戶300需要一^追縱焦點的方法。在微軟的windows OS中作這件工作是很困難的。例如,當一選單被下拉 (dropped down)時(如,在 Microsoft Word 中的檔案選單), 在該選單中的項目當使用者移動游標至每一項目上時其即 會獲的焦點。當選單關閉時(如使用者按下Esc鍵時),就 26 200405695 不會有焦點事件送出。對焦點改變有興趣的客戶必需傾聽 數個事件並弄清楚這些事件中的哪一者邏輯地代表一焦點 文變在本發明的一實施例中,一 AddF〇cusChangeListaer 方法可被用來將焦點改變事件通知該傾聽者。客戶3〇〇指 疋一組需要被回送的特性。指定與該邏輯元件一起被回送 的特性的此項特徵是所有事件註冊Ap〗的一部分。客戶3 〇〇 可啤叫Rem〇VeF〇cusChangeListener方法來停止接收有關 焦點改變的通知。此方法可使用回呼叫物件來認出該傾聽 者且在此例子中被傳遞給Rem〇veF〇cuschangeListener方 法的物件將會跟被傳遞給AddFocusChangeListener的物 件相同。該當焦點改變時存取系2 0 0呼叫一 OnFocusChenged 方法。一使用在 〇nFocusChenged 方法中 的FocusEventArgs參數揭露與該焦點改變相關的資訊。 如果有關於最後一焦點的邏輯元件的資訊是可獲得的話, 則該元件將可在使用於該OnFocusChenged元件中的事件 中獲得。在某些例子中,沒有UI有焦點,直到有些東西 特定地將焦點置於一元件上時才有焦點。 3.特性改變事件 特性改變事件是在邏輯元件的特性改變時被發出的。 在本發明的實施例中,客戶 300 呼叫一 AddProperityChangeListener方法用以接收特性改變的通 知 ^ 當在該邏輯元件樹狀結構内的一被 AddProperityChangeListener所指定的一邏輯元件的特性 數值已被改變時,存取系統200會呼叫OnProperityChange 27 200405695 力欲。一範圍參數指出一事件應發出哪些元件。例如,將 一視窗的根源邏輯元件及對於後代的要求加以傳遞可限制 口呼Μ至該視窗的特性改變。如果範圍參數被設定給該樹 狀結構中的所有元件的話,則該範圍會被忽略且對於發生 在該桌面上之被指定的特性的任何改變都會被送出。客戶 300會用不同的特性組及/或一不同的回呼叫物件來呼叫
AddPr〇peritychangeListener 數次。由該存取系統 200 所 提供的通知顯示:改變的特性;新的特性數值;及舊的特 性數質’如果有的話。 客戶 300 可啤叫一 RemoveProperityChangeListener 方法來停止接收特性改變的通知。此方法可使用範圍元件 及回呼叫物件來認出此傾聽者且在此例子中被傳遞至
RemoveProperityChangeListener的物件必需與被傳遞至 AddProperityChangeListener 的物件相同。 4·來自控制模式的事件 由控制模式發出的事件必需是可擴充的,因此這些事 件是由一 GUIDE所辨認的。任何GUIDE值在註冊時都可 被接受。對雲任何新的控制模式而言,其所登記的事件必 需是獨一無二的GUIDE。AT產品可能需要加以修改用以 傾聽新的·控制模式事件《此傾聽者亦必需能夠將這些事件 納入範圍内。例如,受指導的測試會想要將這些事件限制 在一特殊的應用程式或一應用程式内的控制。該等控制模 式界定該範圍為何且事件消費者將需要參考該部分的登記 文獻用以瞭解如何使用一來源元件及事件物件。 28 200405695 一 AddEventUstener方法可讓客戶3〇〇接收關於 制的射件。範圍參數可被用來顯示哪種元件發出事件: 如,傳遞一視窗的根源邏輯元件且 資本後代將可限制該 窗的事件。如果在樹狀結構中的所有元件都是所想要的 則在桌面上的所有事件都會被送出。
Reffi〇veEventustener方法可被用來停止接收有關控制 事件。此方法可使用範圍元件,回呼叫物件及_事件辨 子來認出該傾聽者。在此例子中被送 RemoveEventListener 的物件必需與被送 AddEventListener 的物件相同。 當一應用程式已召喚該AddEventListener方法時 存取系統200會在特定的控制事件被發出且該事件的來 為該邏輯元件树狀結構中被該AddEventListener所指 的一邏輯元件時呼叫一 〇nEvent方法。當控制的事件 發出時,通常都會有特定事件的資訊。 一 RemoveAllListener方法會被呼叫用以停止接收 有事件。至是在一客戶應用程式停止之前的一快速清除 式。此方法可在終止一應用程式時被使用。 g·邏輯結構改轡事件 邏輯結構改變事件是在邏輯元件樹狀結構改變時發 的。一 AddLogicalStructureChangedListener 方法可被 施用以接收在邏輯元伴樹狀結構中之結構改變的通知。 邏輯元件被添加,移除或失效時,在該被指定的回呼叫 件上的方法會被呼叫。範圍參數可如上所述地限制元件 控 例 視 9 的 認 至 至 , 源 定 被 所 方 出 實 當 物 29 200405695 一 RemoveLogicalStructureChangedListener 方法可被呼叫 用以停止接收邏輯元件樹狀結構改變的事件。此方法可使 用一回呼叫物件及一範圍元件來認出此傾聽指且在此例子 中被傳遞至 RemoveLogicalStructureChangedListener 方法 的物件必需與傳遞至AddEventListener的物件相同。 當一子代元件被添加且親代為該邏輯元件樹狀結構 222 中被該 AddLogicalStructureChangedListener 所指定 的一邏輯元件時,存取系統200會呼叫一 〇nChiledAdded 方法。當一子代元件被移除且舊的親代為該邏輯元件樹狀 結構 222 中被該 AddLogicalStructureChangedListener 所 指定的一邏輯元件時,存取系統 200 會呼叫一 OnChiledRemoved 方法。 當一大數量的子代(如,多於20個子代)於一很短的 時間内被添加時,該存取系統 2 0 〇 會呼叫一 OnChildrenBulkAdded方法。當一大數量的子代於一很短 的時間内被移除時,該存取系統2〇〇會哞叫一 OnChildrenBulkRemoved方法。當一大數量的子代(如, 多於20個子代)於一很短的時間内被添加及移除時,該存 取系統 200 會呼叫一 OnChildrenlnvalidated 方法。 6.多媒體搴件 另一種事件為多媒體事件。多媒體事件可包括聲音, 影像及動晝。方法將可支援多媒體事件並將,,停止”,,,暫 停快轉”,”回轉”,及,,靜音,,等動作的事件通知客戶。 與上述的方法相似的方法可被實施用以添加及移除多媒體 30 200405695 傾聽者。 7. 簡單的聲音》i 簡單的聲音事件可與多媒體事件分開來處理。簡單的 聲曰事件代表簡單,時間短的聲音其存在是為了要將除了 聲音本身之外的某些事件通知使用者。簡單的聲音事件包 括·备新的郵件送達時播放的聲音;當膝上型電腦的電池 電量低時所產生的聲音;或當一訊息箱以ic〇nExclamati〇n 式被顯示時被播放的聲音。一 Adds〇undUstener方法可 被呼叫用以接收簡單的聲音被播放的事件及一 RemoveSoundLIstener方法可被實施用以停止接收簡單的 聲音事件的通知。 當一簡單的聲音被播放時,該存取系統2〇〇會呼叫一 OnSound方法。為了要接收此通知,該傾聽的應用程式話 呼叫AddSoundListener。該0nSound方法取得以下的資 訊J聲音的名稱;聲音的來源;及一代表該聲音對於使用 者的重要性之警不層級值。可能的警示層級包括,,未知,,代 表重要性是未知的;,’資訊性的,,,代表該資訊已被呈現;,, 警告”,代表一警告狀況;,,問號,,,代表需要使用者的回 應,驚嘆號,代表該事件是非關鍵性的但可能很重要; 及”關鍵的”,代表一關鍵事件的發生。 8. 軟體焦點(Soft Focus)拿i 軟體焦點事件出現在桌面上但是待在背景中。軟體事 件的某些例子為·一氣球幫手視窗在通知區中顯示,,有新 的更新可用”;一在工作列中之閃動的圖像(ic〇n)代表想 31 200405695 要獲得焦點的背景應用程式;及當列印開始及結束時—印 表機圖像出現在通知盤中及從通知盤中消失。這些事件 能會與其它事件分類有一些重疊(多媒體可能會涉及動查 事件’軟體焦點也會)。然而,事件將會根據其傳送什麼 給使用者來加以分類而不是根據其如何傳送。
一 AddSoftFocusListener方法可被實施用以接收在不 取得輸入焦點之下償試要得到使用者的注意的事件的通 知。一 RemoveSoftFocusListener方法可停止該通知。此 方法使用回呼叫物件來認出此傾聽者,因此被傳遞至 RemoveSoftFocusListener 方法的物件必需與被傳遞至 AddSoftFocusListener方法的物件相同。
當一軟體焦點事件發生時,該存取系統200會呼叫— OnSoftListener方法。為了要接收此通知,該傾聽的應用 程式或客戶300會呼叫AddSoftFocusListener方法。—來 源元件,如果有的話,可被用來取得更多有關於該事件的 資訊。一來源事件的例子為該系統盤中的通知應用程式之 一所使用的一氣球幫手視窗的邏輯根源元件。該 OnSoftListener方法會回送:事件的名稱;該事件的來源; 及代表對於使用者的重要性的警示層級。 以下的表格顯示客戶300及存取系統200在客戶使用 一 AddTopLevelWindowListener API 來傾聽來自於一特殊 處理的事件時的動作。 32 200405695 客戶 存取系統及目標UI視窗 呼叫 AddTopLevelWindowListener •存取系統客戶開始一執行緒(thread)用 以監看上層應用程式視窗被產生及毀 滅。 •新的UI出現且該存取系統客戶呼叫 該客戶的 OnTopLevelWindowOpened 方 法。 從 OnTopLevelWindowOpened 呼叫其它 的API用以註冊發生在目標UI視窗内 的額外事件 •存取系統客戶將該事件的識別碼告 知該目標UI視窗使其可在事件通知 時加以選擇。 •存取系統客戶將該事件的識別碼及過 濾資訊告知該存取系統伺服器使其可 進一步過濾事件。 •目標UI視窗使用該存取系統伺服器 API用以將感興趣的事件通知該存取 系統伺服器側。 處理在回呼叫物件中的事件 •存取系統伺服器將事件告知回到該存 取系統客戶。 •存取系統客戶將用來註冊的物件回呼 叫給該應用程式。 呼叫RemoveListener API來停止接收事 件 -—---— 存取系統客戶將不再感興趣的事件告 知存取系統伺服器及目標忉視窗。 目標應用程式停止將事件通知存取系 統伺服器。_—_____
33 200405695 事件通知 對應的事件通知方法被伺服器400或基礎的UI引擎 用來支援以上列舉的存取系統事件。m自動化伺服器API 包括伺服器400或基礎引擎會呼叫來完成工作的方 法。例如’有一 N〇tifyProperityChanged方法供伺服器來 呼叫用以在一邏輯元件上有一特殊的特性改變時通知。伺 服器40 0或基礎UI引擎會決定是否在υι改變時要產生 適當的參數及呼叫這些通知方法。 伺服器方法 當客戶300要求事件時,UI自動化客戶會呼叫一 AdviseEventAdded 方法及一 AdviseEventRemoved 方法用 以通知飼服器400。這可讓伺服器4〇〇不會在沒有感興趣 的事件時’將事件送給存取系統2〇〇。伺服器可使用這些 通知來讓性能與是否有客戶使用該等事件相關聯。 控制模式 存取模型提供獨一無二的途徑來將一特殊的UI或控 制所支援的功能分類及揭露。與前技中將功能與一特殊的 控制種類相關聯(例如’ 一按紐,一編輯框,或一表單框) 相反地’該存取模型界定一組共同的控制模式,每一控制 模式都界定UI行為的一個態樣。因為這些模式彼此並不 相關聯,所以它們可被結合來描述一特殊的UI元件所支 援的整組功能β 例如,與用類別名稱來描述一元件,如按鈕,相反地, 該存取系統200將其描述為支援該召喚的控制模式。一栌 34 200405695 制模式界定一元件所支援的結構,特性,事件 因此,這些模式不只可讓客戶一求一控制的行 可讓客戶藉由使用一特殊模式所用的界面來程 該控制。例如,一 SelectionContainer模式提 取的項目的要求,選取或取消選取一特定的項 該控制是支援單一選擇或多重選擇模式。 目前被界定來功存取系統200用的控制模 選擇容器(container) ; (2)組織架構;(3) (invok able); (4)簡單網格;(5)文字;(6)數值 件;(8)可捲動的;(9)可分類的;(1〇)畫圖; 容器。 此技術讓控制開發者能夠實施一新種類的 有一已成熟的途徑來將其行為揭壽給AT產, 本。如果一新種類的行為被導入的話,一新的 被界定用以揭露被要求的功能。 辅助技術產品及測試劇本現可被撰寫用以 每一模式,而非每一 UI控制,一起工作。因 的數量遠比控制種類少,所以此技術可將必要 少。此方法亦鼓勵一更有彈性的架構其可有效 操控新的控制(只要它們支援已知的控制模式即 以下的表格提供一些共同控制的例子及它 式。 ’及方法。 為,它們還 式化地操控 供對於被選 目,或局定 式包括:(1) 可召喚的 ;(7)代表物 及(U)其它 控制同時具 志及測試劇 控制模式可 瞭解如何與 為控制模式 的碼減到最 率地詢問及 可)。 們支援的模 35 200405695 控制 相關的控制模式 按紐 可召喚的 檢查框,無線電按雜 數值 名單框 選擇容器,可捲動的 聯合框 選擇容器,可捲動的,數值 樹狀景觀 選擇容器,可捲動的,組織架構 名單景觀 選擇容器,可捲動的,可分類的 文字框’編輯 數值,文字,可捲動的
更多特定的界面將被用來揭露與共同礦制模式相關的 功能。這些模式的例子包括:(1)選擇管理容器;(2)網格 佈局容器;(3)包含數值的 UI元件;(4)代表物件(檔案, 電子郵件等)的圖像;及(5)可被召喚的UI元件。大致上, 這些模式並沒有緊密地與特定的控制結合且不同的控制可 實施相同的模式。例如,名單框,聯合框及樹狀景觀都實 施’選擇管理容器’模式。如果適當的話,某些控制可實施 多個模式:一選擇網格可實施’網格佈局容器’模式及’選 擇管理容器’模式。 與在之前的應用程式中不同的是,不再有單一’角色’ 的特性。相反地,兩個分離的機制會被使用。控制模式決 定一控制之可用的功能且一人類可讀的、可地區化的特性 提供使用者可暸解的一控制種類名稱,如’按鈕’,’名單 框,等。 36 200405695 特性 該存取系統 200將以一通用 GetProperty方法為特 徵。特性最好是由GUID來代表,且工具方法被用來翻譯 一非地區化的記憶形式並獲得地區化的描述。一通用的 GetProperty方法,而不是各別的方法,的兩個主要的好 處為(a)其允許新的特性隨著時間被增加,而無需改變該 界面,及(b)其允許實施技術一如陣列驅動的大量特性擷 取一其在使用各別的方法時是不可能的。每一特性必需具 有一清楚界定的旨意。該特性是要給人類或給機器使用, 該特性是否要被地區化,等等都被需被清楚地界定。 本發明已依據特定的實施例加以說明,這些實施例只 是作為舉例而不是用來限制。在不偏離本發明的範圍下之 其它的實施例對於熟悉此技藝者而言將會是很明顯的。 由以上所述,可被看出來的是,本發明可達成所有目 的及目標,以及該系統及方法的其它優點。應被暸解的是, 某些特徵及此組合是有效用的且可在沒有其它特徵及次組 合下被使用。這些都是在本發明的範圍之内。 【圖式簡單說明】 本發明將參照附圖於下文中詳細加以說明,其中: 第1圖為一適合實施本發明之計算系統環境的方塊 圖; 第2圖為在一存取系統,一客戶環境,及一伺服器環 境之間的互動的一方塊圖; 37 200405695 第3圖為一方塊圖,其顯示該存取系統核心的構件; 第4(A)-4(D)圖顯示一邏輯樹狀結構的產生; 第5圖為一流程圖,其顯示建構一邏輯樹狀結構的一 連串程序; 第6圖顯示一對話方塊及形成邏輯原本的元件(native element)的構件; 第7圖為一流程圖,其顯示啟動本發明的事件機制所 涉及的程序;及 第8圖顯示一已知的事件通知系統。 【元件代表符號簡單說明】 2 > 處理邊界 6 事件 10 客戶 12 伺服器應用程式 14 核心程式 16 要求 18 事件通知 20 物件 100 計算環境 110 電腦 120 處理單元 121 系統匯流排 130 系統記憶 體 131 ROM 132 RAM 134 作業系統 135 應用程式 136 其它程式模組 137 程式資料 141 硬碟機 140 界面 151 磁碟機 152 可取下, 非揮發式磁碟片 155 光碟片 156 可取下,非揮發光碟片 200405695 150 界面 144 作業系統 145 應用程式 146 其它程式模組 147 程式資料 160 使用者輸入界面 161 指標裝置 162 鍵盤 163 無線輸入接收構件 191 顯示裝置 195 輸出週邊界面 196 印表機 197 ,口八 180 遠端電腦 181 記憶儲存裝置 171 局部區域網路(LAN) 173 廣域區域網路(WAN) 170 網路界面 172 數據機 185 遠端應用程式 133 BIOS 200 存取系統 300 客戶環境 400 伺服器環境 220 客戶側存取界面 230 伺服器側存取界面 201 存取系統核心 410 伺服器系統 412 配接器 414 核心 420 伺服器系統 422 代理構件 424 控制 222 邏輯樹狀結構 20 原始的樹狀結構 11 親代節點 12 子代節點 14 原本的樹狀結構 15 親代節點 16 子代節點 430 伺服器系統 432 配接器 434 内部OM 210 事件機制 202 UI自動化客戶 204 UI自動化伺服器 21 親代節點 22 子代節點
39 200405695 30 子代節點 23- 29 子孫 3 1- 33 子孫 60 對話框 62 飛動的視窗圖形 64 聯合框 66 取消 67 瀏覽 206 使用者界面引擎
40

Claims (1)

  1. W0405695 拾、申請專利範圍: • 種在主從(client-server)環境中的事件機制,其係了 讓一客戶保持被告知使用者界面事件,該事件機制至 少包含: 一註冊機制,用來讓該客戶註冊及接受有興趣的使 用者界面資訊; 一使用者界面自動化客戶,其接收來自於該客戶的 註冊資訊並在接受到時將該有興趣的使用者界面資訊 傳送給該客戶;及 一使用者界面自動化伺服器,其接受來自於該使用 者界面自動化客戶的註冊資訊並接受來自於一使用者 界面引擎的使用者界面資訊,該使用者界面自動化伺 服器包括一過滤裝置用來過據掉該客戶沒有興趣的資 訊及一告知裝置用來將該客戶有興趣的資訊告知給該 使用者界面自動化客戶。 2 ·如申請專利範圍第1項所述之事件機制,其中該註冊 機制接受來自於客戶的註冊資訊,該註冊資訊包括: 物件資訊;該物件資訊的客戶位置;及一將與一來源 物件一起被回送的一列特性。 3·如申請專利範圍第2項所述之事件機制,其中該使用 者界面(UI)自動化客戶包含將物件資訊送至特定的客 41 200405695 戶位置的機構。 4.如申請專利範圍第2項所述之事件機制,其中該使 者界面自動化伺服器的過濾機構決定來自使用者界 引擎的使用者界面資訊是否包括物件資訊及該列所 求的特性。 5. 如申請專利範圍第1項所述之事件機制,其中該註 機制接受對於一特定的資訊範圍的要求。 6. 如申請專利範圍第5項所述之事件機制,其中該使 者界面自動化伺服器形成一邏輯元件,如果該使用 界面資訊是該客戶感興趣的且是在被指定的範圍内 話,且如果該使用者界面資訊是使用者不感興趣或 在指定的範圍内的話,則拋棄該使用者界面資訊。 7. 如申請專利範圍第1項所述之事件機制,其中來自 該使用者界面引擎之該使用者界面自動化伺服器通 包括:一被改變的特性的名稱;一新的數值;及任 可得到的舊數值。 8. 如申請專利範圍第1項所述之事件機制,其中該使 者界面資訊包含屬於至少一事件種類的資訊,該至 用 面 要 冊 用 者 的 被 於 知 何 用 少 42 Ά.1 200405695 一事件種類是從由上層視窗事件;焦點事件;特性改 變事件;控制模式事件;邏輯結構改變事件;多媒體 事件;簡單的聲音事件;及軟體焦點事件所構成的組 群中選取的。 9.如申請專利範圍第8項所述之事件機制,其中每一事 件只落在一事件種類内。 1 0.如申請專利範圍第8項所述之事件機制,其中每一事 件種類都包括一組方法用以增加一傾聽者,移除該傾 聽者,提示該事件機制用以傾聽該事件種類,及供使 用者界面引擎將其事件通知該使用者界面自動化伺服 器。 11. 一種用來將感興趣的使用者界面事件通知一客戶之電 腦的實施方法,該方法至少包含: 從該客戶處接受對於被指定的使用者界面資訊的註 冊要求; 監視來自於一使用者界面自動化伺服器的使用者界 面引擎資訊用以決定該被指定的使用者界面資訊是否 是可獲得的; 將該被指定的使用者界面資訊從該使用者界面自動 化伺服器傳遞至一使用者界面自動化客戶;及 43 200405695 將該被指定的使用者界面資訊從該使用者界面自動 化客戶傳送至一適當的客戶位置。 12.如申請專利範圍第11項所述之方法,其中接受一註冊 要求包含接受包括下列的註冊資訊:物件資訊;該物 件資訊的一客戶位置;及一列被要求的特性。 1 3 .如申請專利範圍第1 2項所述之方法,其中傳送該被指 定的使用者界面資訊包含將該物件資訊傳送至該被指 定的客戶位置。 14.如申請專利範圍第12項所述之方法,其更包含用該使 用者界面自動化伺服器來過濾使用者界面資訊用以決 定來自於該使用者界面引擎的使用者界面資訊是否包 括該物件資訊及該列被要求的特性。 1 5.如申請專利範圍第1 1項所述之方法,其中接受一註冊 要求包含接受對於一被指定的資訊範圍的要求。 16.如申請專利範圍第15項所述之方法,其更包含如果該 使用者界面資訊是該使用者感興趣的且是在該被指定 的範圍内話,則用該使用者界面自動化伺服器形成一 邏輯元件,及如果該使用者界面資訊是該使用者不感 44 200405695 興趣的或不在該被指定的範圍内話,則將會拋棄該使 用者界面資訊。 17·如申請專利範圍第11項所述之方法,其更包含接受來 自於該使用者界面引擎的資訊,其包括:一被改變的 特性的名稱;一新的數值;及任何可獲得之舊的數值。 18. 如申請專利範圍第11項所述之方法,其更包含接受屬 於至少一事件種類的使用者界面資訊,該至少一事件 種類是從由上層視窗事件;焦點事件;特性改變事件; 控制模式事件;邏輯結構改變事件;多媒體事件;簡 單的聲音事件;及軟體焦點事件所構成的組群中選取 的。 19. 如申請專利範圍第8項所述之事件機制,其中每一事 件都只落在一種事件種類内。 45
TW092109522A 2002-09-30 2003-04-23 System having event mechanism for keeping a client notified of changes in the user interface, and method for notifying a client of interesting user interface events TWI273791B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41533802P 2002-09-30 2002-09-30
US10/366,941 US20040064530A1 (en) 2002-09-30 2003-02-14 Accessibility system events mechanism and method

Publications (2)

Publication Number Publication Date
TW200405695A true TW200405695A (en) 2004-04-01
TWI273791B TWI273791B (en) 2007-02-11

Family

ID=31949832

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092109522A TWI273791B (en) 2002-09-30 2003-04-23 System having event mechanism for keeping a client notified of changes in the user interface, and method for notifying a client of interesting user interface events

Country Status (16)

Country Link
US (1) US20040064530A1 (zh)
EP (1) EP1403763A3 (zh)
JP (1) JP2004145851A (zh)
KR (1) KR20040028475A (zh)
CN (1) CN100589063C (zh)
AU (1) AU2003201954B2 (zh)
BR (1) BR0301004A (zh)
CA (1) CA2424204A1 (zh)
CO (1) CO5450260A1 (zh)
IL (1) IL155001A (zh)
MX (1) MXPA03003083A (zh)
MY (1) MY141524A (zh)
NO (1) NO325479B1 (zh)
PL (1) PL359693A1 (zh)
SG (1) SG134984A1 (zh)
TW (1) TWI273791B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7250955B1 (en) * 2003-06-02 2007-07-31 Microsoft Corporation System for displaying a notification window from completely transparent to intermediate level of opacity as a function of time to indicate an event has occurred
US20060031572A1 (en) * 2004-05-18 2006-02-09 Microsoft Corporation Event broker
TR201904404T4 (tr) * 2004-09-10 2019-04-22 Koninklijke Philips Nv En azından bir medya veri işleme cihazını kontrol etmeyi sağlamak için cihaz ve yöntem.
US7797636B2 (en) 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US9152475B1 (en) 2005-09-29 2015-10-06 Hewlett-Packard Development Company, L.P. Notifying listeners of change events
JP4791285B2 (ja) * 2006-08-04 2011-10-12 富士通株式会社 ネットワーク装置およびフィルタリングプログラム
KR20080110489A (ko) * 2007-06-14 2008-12-18 소니 가부시끼 가이샤 정보 처리 장치 및 방법, 및 컴퓨터 프로그램
TWI447593B (zh) * 2008-04-25 2014-08-01 Chi Mei Comm Systems Inc 用戶介面通訊系統及方法
EP2584464B1 (en) * 2011-10-18 2020-02-19 BlackBerry Limited Method of rendering a user interface
WO2014006669A1 (ja) * 2012-07-02 2014-01-09 三菱電機株式会社 通信システム
CN104639721B (zh) * 2013-11-06 2018-11-27 阿里巴巴集团控股有限公司 在移动终端设备中提供应用程序信息的方法及装置
WO2015167469A1 (en) 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Monitoring application flow of applications using a regular or extended mode
US9917760B2 (en) 2015-06-03 2018-03-13 International Business Machines Corporation Notifying original state listeners of events in a domain model
US10656802B2 (en) 2017-04-05 2020-05-19 Microsoft Technology Licensing, Llc User interface component registry
US11175809B2 (en) 2019-08-19 2021-11-16 Capital One Services, Llc Detecting accessibility patterns to modify the user interface of an application

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432940A (en) * 1992-11-02 1995-07-11 Borland International, Inc. System and methods for improved computer-based training
AU2759297A (en) * 1996-05-20 1997-12-09 Cognos Incorporated Application services builder
US5923328A (en) * 1996-08-07 1999-07-13 Microsoft Corporation Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control
US6334157B1 (en) * 1997-03-11 2001-12-25 Microsoft Corporation Programmatically providing direct access to user interface elements of an application program
US6144377A (en) * 1997-03-11 2000-11-07 Microsoft Corporation Providing access to user interface elements of legacy application programs
US6363435B1 (en) * 1998-02-03 2002-03-26 Microsoft Corporation Event sourcing and filtering for transient objects in a hierarchical object model
US6263360B1 (en) * 1998-06-01 2001-07-17 Sri International System uses filter tree and feed handler for updating objects in a client from a server object list
US6341280B1 (en) * 1998-10-30 2002-01-22 Netscape Communications Corporation Inline tree filters
US7010793B1 (en) * 2000-10-12 2006-03-07 Oracle International Corporation Providing an exclusive view of a shared resource

Also Published As

Publication number Publication date
PL359693A1 (en) 2004-04-05
EP1403763A2 (en) 2004-03-31
CN1487391A (zh) 2004-04-07
TWI273791B (en) 2007-02-11
MY141524A (en) 2010-05-14
EP1403763A3 (en) 2005-09-07
CN100589063C (zh) 2010-02-10
US20040064530A1 (en) 2004-04-01
CO5450260A1 (es) 2004-10-29
MXPA03003083A (es) 2004-10-15
KR20040028475A (ko) 2004-04-03
AU2003201954A1 (en) 2004-04-22
CA2424204A1 (en) 2004-03-30
JP2004145851A (ja) 2004-05-20
NO325479B1 (no) 2008-05-13
SG134984A1 (en) 2007-09-28
BR0301004A (pt) 2004-08-17
NO20031294D0 (no) 2003-03-20
IL155001A (en) 2008-04-13
NO20031294L (no) 2004-03-31
IL155001A0 (en) 2003-10-31
AU2003201954B2 (en) 2009-12-10

Similar Documents

Publication Publication Date Title
US7434167B2 (en) Accessibility system and method
US7644367B2 (en) User interface automation framework classes and interfaces
US11829853B2 (en) Systems and methods for tracking and representing data science model runs
TW200405695A (en) Accessibility system events mechanism and method
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
US20180089071A1 (en) Method and system for testing software based system
JP2006018827A (ja) スマート・ユーザ・インターフェース記録および再生フレームワーク
JP2008506185A (ja) 自動テキスト生成
US8522005B2 (en) System and method for mapping platform configuration human interface infrastructure data to system attributes for local and remote system management
US20040061714A1 (en) Logical element tree and method
US20220229638A1 (en) Content development device
CN114868109B (zh) 用户界面自动化中的自动锚点确定和目标图形元素标识
US20130263143A1 (en) Information processing method and system
US20110078218A1 (en) Event history storage device, event history tracking device, event history storage method, event history storage program, and data structure
US20090259986A1 (en) Class selectable design sharing
JP2008243033A (ja) 検索システム、検索方法、プログラムおよび記憶媒体
RU2316043C2 (ru) Механизм и способ предоставления информации событий в системе доступа
US9038049B2 (en) Automated discovery of resource definitions and relationships in a scripting environment
KR102567773B1 (ko) 전투체계 시스템에서의 로그 정보 추출장치 및 그 방법
NZ524858A (en) Receiving user interface information from server for keeping track of changes to user interface depending on client's registration
JPWO2008029741A1 (ja) 業務支援システムおよびその方法
JP2011129078A (ja) ツリ−構造を利用した、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees