專利名稱:動態(tài)輸入設(shè)備的上下文控制的制作方法
動態(tài)輸入設(shè)備的上下文控制
背景技術(shù):
很多計算系統(tǒng)利用具有系統(tǒng)級活動焦點(active focus)的單個應(yīng)用來操作。在這樣的系統(tǒng)中,輸入被自動地路由至當(dāng)前具有系統(tǒng)級活動焦點的應(yīng)用。例如,如果字處理應(yīng)用具有系統(tǒng)級活動焦點,那么敲鍵盤輸入將被自動地路由至字處理應(yīng)用,例如,以便在文檔中寫入句子。系統(tǒng)級活動焦點能夠從一個應(yīng)用改變至另一個應(yīng)用,但是兩個不同的應(yīng)用將不會同時具有系統(tǒng)級活動焦點。例如,系統(tǒng)級活動焦點能夠從字處理應(yīng)用改變至瀏覽器應(yīng)用。在這樣的改變之后,敲鍵盤輸入將被自動地路由至瀏覽器應(yīng)用,例如以便在地址欄中寫入亂。在執(zhí)行系統(tǒng)級活動焦點的許多系統(tǒng)中,沒有用于將敲鍵盤輸入和其他類型的輸入轉(zhuǎn)移至除了具有系統(tǒng)級活動焦點的應(yīng)用之外的其他應(yīng)用的機制
發(fā)明內(nèi)容
根據(jù)本公開的一個方面的計算系統(tǒng)包括一個或多個輸入設(shè)備用戶界面運行時應(yīng)用(runtime application),以便在動態(tài)輸入設(shè)備上動態(tài)地顯示圖像。一個或多個輸入設(shè)備用戶界面運行時應(yīng)用在當(dāng)前活動桌面中被執(zhí)行。計算系統(tǒng)進(jìn)一步包括被配置成在當(dāng)前活動桌面中執(zhí)行的主導(dǎo)應(yīng)用(dominant application)。主導(dǎo)應(yīng)用被配置成指定與主導(dǎo)應(yīng)用的當(dāng)前上下文相對應(yīng)的輸入設(shè)備用戶界面運行時應(yīng)用。所指定的輸入設(shè)備用戶界面運行時應(yīng)用被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示虛擬控制器。所指定的輸入設(shè)備用戶界面運行時應(yīng)用也被配置成將虛擬控制器的激活報告給主導(dǎo)應(yīng)用。提供這個發(fā)明內(nèi)容部分來以簡化的形式介紹下面在具體描述部分中進(jìn)一步描述的概念的選擇。這個發(fā)明內(nèi)容部分并不打算標(biāo)識所請求保護(hù)的主題的關(guān)鍵特征或基本特征,也不打算用于限制所請求保護(hù)的主題的范圍。此外,所請求保護(hù)的主題并不限于解決在這個公開的任何部分中指出的任何或所有缺陷的實現(xiàn)方式。
圖I顯示包括提供顯示與鍵盤組件的鍵有關(guān)的可視輸出的能力的動態(tài)輸入設(shè)備的示例計算系統(tǒng)。圖2是圖I所示的動態(tài)輸入設(shè)備的分解圖,并且顯示在動態(tài)輸入設(shè)備的鍵盤組件下面的顯示設(shè)備所提供的可視顯示輸出。圖3顯示根據(jù)本公開的實施例的示例計算系統(tǒng)。圖4顯示用于實現(xiàn)圖3的計算系統(tǒng)的示例架構(gòu)。圖5顯示用于實現(xiàn)圖3的計算系統(tǒng)的另一示例架構(gòu)。圖6顯不根據(jù)本公開的實施例的一系列用戶輸入和動態(tài)輸入設(shè)備輸出。圖7顯示使用無窗口(windowless)運行時環(huán)境來管理來自動態(tài)輸入設(shè)備的輸入的示例方法。圖8顯示用于主導(dǎo)應(yīng)用利用動態(tài)輸入設(shè)備來實現(xiàn)輔助體驗的示例方法。
具體實施例方式公開用于將敲鍵盤和其他類型的輸入遞送至除了具有系統(tǒng)級活動焦點的應(yīng)用之外的其他應(yīng)用的系統(tǒng)和方法。如下所述,能夠由托管(host)無窗口運行時環(huán)境的容器模塊來處理來自動態(tài)輸入設(shè)備的觸摸輸入和其他類型的輸入,其中在無窗口運行時環(huán)境內(nèi)能夠托管采用輸入設(shè)備用戶界面運行時應(yīng)用(UI運行時應(yīng)用)形式的輔助體驗。如下面更詳細(xì)描述的,動態(tài)輸入設(shè)備可以被配置成在不同的鍵或其他輸入位置上顯示不同的圖像。UI運行時應(yīng)用能夠控制在不同的鍵或其他輸入位置上顯示什么圖像。當(dāng)用戶按下在輸入位置上顯示的虛擬按鈕時,由于虛擬按鈕而導(dǎo)致的輸入消息能夠被路由至在此公開的容器模塊,以便遠(yuǎn)離當(dāng)前具有系統(tǒng)級活動焦點的應(yīng)用來處理。在一些實施例中,由于物理鍵按壓而導(dǎo)致的輸入消息可以任選地被路由至在此公開的容器模塊。這樣,輔助體驗或Π運行時應(yīng)用能夠與具有系統(tǒng)級活動焦點的桌面應(yīng)用協(xié)作來給用戶提供豐富的用戶體驗。圖I顯示包括顯示監(jiān)視器22、組件外殼24 (例如,包含處理器、硬盤驅(qū)動器等等)和動態(tài)輸入設(shè)備26的示例計算系統(tǒng)20。因為動態(tài)輸入設(shè)備26能夠通過顯示不同的圖像來 動態(tài)地適配,所以動態(tài)輸入設(shè)備26也可以被稱為自適應(yīng)輸入設(shè)備。圖2提供可以在其構(gòu)造中使用的動態(tài)輸入設(shè)備26和示例組件的附加視圖。如將在各個示例中所描述的,除了鍵盤類型輸入功能之外,還可以實現(xiàn)動態(tài)輸入設(shè)備26來提供可顯示的輸出。特別地,計算機外設(shè)可以包括有助于圖像的鍵上和/或通過鍵觀看的鍵。在其他實施例中,動態(tài)輸入設(shè)備可能不包括鍵,而可能包括能夠識別觸摸激活的一個或多個顯示區(qū)域。如利用鍵28上的“Q”、“W”、“E”、“R”、“T”、“Y”等等所示的(圖I和2),將時常希望將動態(tài)輸入設(shè)備26配置成提供常規(guī)的字母數(shù)字輸入能力。為了簡化說明,圖I和2的許多鍵被顯示成沒有標(biāo)記,然而將意識到將時常在每一個鍵上顯示標(biāo)簽或圖像。此外,除了或替代“QWERTY”表述方式(formulation),鍵盤的鍵28可以動態(tài)地被改變來提供其他功能。例如,鍵可以被指派來針對各種語言與字母表提供功能和/或激活其他輸入命令來控制計算系統(tǒng)20。在一些實現(xiàn)方式中,鍵功能可以基于上下文來改變,例如,以響應(yīng)在計算系統(tǒng)20上運行的軟件塊的不斷變化的操作上下文。例如,一旦按下“ALT”鍵,以其他方式用于輸入字母“F”的鍵可能反而導(dǎo)致軟件應(yīng)用中的“文件”菜單的激活。通常,應(yīng)明白目前示例中的鍵可以選擇地被按下,以產(chǎn)生用于控制計算機的任何類型的輸入信號。動態(tài)輸入設(shè)備26能夠提供各種各樣的可顯示輸出,以增強和以其他方式增加計算體驗。在一些示例中,計算機外設(shè)引起在個別鍵28上或在其附近可視輸出的顯示,以指示鍵功能。這能夠在圖I和2中看到,其中替代具有在鍵帽表面上噴涂或印刷的字母的鍵,使用顯示機制(例如,位于這些鍵下方的液晶顯示(LCD)設(shè)備)來指示這些鍵的“Q”、“W”等等功能。這種動態(tài)的且可編程的顯示能力有助于采用各種不同方式的動態(tài)輸入設(shè)備26的的潛在使用。例如,上述的基于英語的鍵盤能夠被映射(map)來按照字母表順序而非常規(guī)的“QWERTY”表述方式來提供字母,并且用于每一個鍵的顯示則能夠容易地被改變來反映不同的鍵設(shè)置。在此設(shè)想的顯示能力可以用于給計算系統(tǒng)20的用戶提供任何類型的可視輸出,并且不限于字母表、字母、數(shù)字、符號等等。作為上面示例的選擇方案,圖像可以采用未必在空間意義上與個別鍵相關(guān)聯(lián)的方式來顯示。例如,圖像可能被呈現(xiàn)在跨越(span)多個鍵的鍵盤的區(qū)域中。所提供的圖像不需要與鍵盤的輸入功能相關(guān)聯(lián)。例如,圖像可以出于美觀目的來提供,以個性化用戶體驗,或提供其他類型的輸出。實際上,目前的公開涵蓋用于任何目的的顯示輸出。此外,除了在鍵28上或在其附近提供的顯示之外,顯示功能還可以在其他區(qū)域中提供,例如在位于鍵28上方的區(qū)域32中提供。更進(jìn)一步,除了利用鍵28提供的鍵盤類型輸入之外,還可以給區(qū)域32或動態(tài)輸入設(shè)備26的其他部分提供基于觸摸或手勢的交互。例如,借助于基于電容的技術(shù)、基于電阻的技術(shù)或其他適當(dāng)?shù)姆椒?,可以將區(qū)域32作為交互式觸摸屏顯示來實現(xiàn)。還進(jìn)一步,在一些實施例中,動態(tài)計算機外設(shè)可以只包括觸摸區(qū)域而沒有可按鍵。圖2顯示動態(tài)輸入設(shè)備26的非限制示例配置。所提供的示例不以任何方式進(jìn)行限制,并且將明白目前的公開與任何的動態(tài)輸入設(shè)備相兼容。如所示的,動態(tài)輸入設(shè)備26可以包括顯示設(shè)備40以及部署在顯示設(shè)備之上并與顯示設(shè)備相耦合的鍵盤組件42。鍵盤組件42可能至少部分是透明的,以允許用戶通過鍵盤組件查看顯示設(shè)備所產(chǎn)生的圖像。例如,在一個實施例中,每一個鍵28具有中央透明的部分,其允許用戶查看位于鍵盤組件42下方的IXD面板或其他顯示設(shè)備所產(chǎn)生的圖像。在一些情況中,實質(zhì)上所有的鍵將是透明 的。在其他的示例中,例如,鍵的外圍部分可以是不透明的,以隱藏有助于鍵帽的上下移動的結(jié)構(gòu)。在一些實施例中,鍵帽可以包括透鏡狀屏幕或其他光漫射屏幕,其中可以將圖像背投到這些屏幕上??梢圆捎酶鞣N類型的顯示設(shè)備。如上簡要指示的,一種類型的合適顯示設(shè)備是IXD設(shè)備。然而,應(yīng)該意識到鍵盤組件可以與各種其他的顯示器類型包括投影顯示器和楔形投影顯示器相耦合。如上所介紹的,來自鍵盤和其他計算機外設(shè)的輸入通常被自動地路由至當(dāng)前具有系統(tǒng)級活動焦點的應(yīng)用。當(dāng)前具有系統(tǒng)級活動焦點的應(yīng)用隨后直接處理以這種方式接收的輸入。在許多環(huán)境中,這樣的框架給用戶提供可預(yù)測的計算體驗。然而,在一些情景中,可能希望的是除了當(dāng)前具有系統(tǒng)級活動焦點的應(yīng)用之外的某事來處理來自鍵盤和其他計算機外設(shè)的輸入。例如,在動態(tài)輸入設(shè)備的上下文中,可能希望的是采用UI運行時應(yīng)用形式的輔助體驗從動態(tài)輸入設(shè)備接收輸入以及處理一些或所有這樣的輸入。這樣的范例允許Π運行時應(yīng)用來控制利用動態(tài)輸入設(shè)備顯示的圖像。這樣的范例也允許Π運行時應(yīng)用控制激活鍵或在動態(tài)輸入設(shè)備上的其他輸入?yún)^(qū)域的最終效果。集中輸入和輸出控制與UI運行時應(yīng)用允許桌面應(yīng)用和其他程序利用動態(tài)輸入設(shè)備而不必被設(shè)計來處理所有的設(shè)備輸入和設(shè)備顯示輸出。換句話說,被寫入以便與標(biāo)準(zhǔn)鍵盤一起使用的桌面應(yīng)用可以與動態(tài)輸入設(shè)備一起使用,并且采用UI運行時應(yīng)用形式的輔助體驗?zāi)軌蛴糜谠趧討B(tài)輸入設(shè)備與桌面應(yīng)用之間功能工作。Π運行時應(yīng)用能夠控制由動態(tài)輸入設(shè)備顯示什么圖像以及用戶激活將如何取決于顯示什么圖像來解釋。為了允許這種類型的控制,UI運行時應(yīng)用替代具有系統(tǒng)級活動焦點的應(yīng)用來處理至少一些輸入消息。為了提供這樣的靈活性,UI運行時應(yīng)用可能不是堅持(adhere to)系統(tǒng)級活動焦點的約定的常規(guī)桌面應(yīng)用。如下面更詳細(xì)描述的,反而Π運行時應(yīng)用可以作為桌面應(yīng)用的輔助體驗在無窗口運行時環(huán)境內(nèi)操作。圖3示意性地顯示能夠?qū)⒂|摸輸入、敲鍵盤輸入和/或其他類型的輸入遞送至除了具有系統(tǒng)級活動焦點的應(yīng)用之外的其他應(yīng)用的計算系統(tǒng)50的示例實施例。特別地,圖3顯示包括動態(tài)輸入設(shè)備的計算系統(tǒng),其中動態(tài)輸入設(shè)備將輸入消息遞送至Π運行時應(yīng)用,如上所介紹的。計算系統(tǒng)50可以任選地包括采用鍵盤形式的直接輸入設(shè)備52。計算系統(tǒng)50也包括采用自適應(yīng)鍵盤形式的動態(tài)輸入設(shè)備54,其中自適應(yīng)鍵盤包括其上能夠顯示不同圖像的多個鍵56。動態(tài)輸入設(shè)備54也包括沒有鍵的觸摸區(qū)域58。觸摸區(qū)域能夠用于顯示能被用戶激活的一個或多個虛擬按鈕或其他虛擬控制器。雖然在這個示例中沒有顯示出,但是動態(tài)輸入設(shè)備可以包括鍵和觸摸區(qū)域的不同安排或組合,并且一些動態(tài)輸入設(shè)備可以包括鍵而沒有觸摸區(qū)域或包括觸摸區(qū)域而沒有鍵。動態(tài)輸入設(shè)備可以被配置成向用戶動態(tài)地顯示多個輸入圖像以及確認(rèn)針對多個輸入圖像之中任何特定圖像的用戶輸入。作為示例,不同的輸入圖像可以顯示在多個鍵56上,并且動態(tài)輸入設(shè)備54可以輸出包括特定鍵的指示以響應(yīng)針對那個特定鍵的用戶輸入的動態(tài)輸入消息。作為另一示例,不同的輸入圖像可以作為虛擬控制器而顯示在觸摸區(qū)域58的不同位置上,并且動態(tài)輸入設(shè)備54可以輸出包括特定虛擬控制器的指示以響應(yīng)針對那個特定虛擬控制器的用戶輸入的動態(tài)輸入消息。 計算系統(tǒng)50可以包括用于執(zhí)行一個或多個本機應(yīng)用的操作系統(tǒng)60。操作系統(tǒng)60可以管理和協(xié)調(diào)在執(zhí)行的應(yīng)用之間的資源共享和分配。操作系統(tǒng)60也可以控制計算系統(tǒng)50的至少一些I/O功能。在至少一些框架中,操作系統(tǒng)60被配置成允許當(dāng)前被執(zhí)行的一個或多個本機應(yīng)用中的單個應(yīng)用具有系統(tǒng)級活動焦點。在這樣的框架中,操作系統(tǒng)60將來自一個或多個直接輸入設(shè)備的所有直接輸入消息引導(dǎo)到具有系統(tǒng)級活動焦點的本機應(yīng)用。操作系統(tǒng)的非限制示例包括 MICROSOFT WINDOWS 、APPLE MAC OS 和 LINUX 。在一些實施例中,操作系統(tǒng)可以將鍵盤消息(例如,由于鍵盤鍵被按壓而產(chǎn)生的消息)路由至具有系統(tǒng)級活動焦點的應(yīng)用。在這樣的情況下,操作系統(tǒng)掛鉤(hook)可以用于偷窺鍵盤消息。這些消息也可以被發(fā)送至Π運行時應(yīng)用,因而允許Π運行時應(yīng)用基于Π運行時應(yīng)用觀察到什么鍵盤消息來響應(yīng)。另一方面,觸摸輸入消息(例如,由于觸摸區(qū)域58上的用戶觸摸而產(chǎn)生的消息)可以被直接路由至運行時環(huán)境并被轉(zhuǎn)換成Π運行時應(yīng)用能夠明白的消息。觸摸輸入消息能夠被路由至運行時環(huán)境而不被路由至具有系統(tǒng)級活動焦點的應(yīng)用。動態(tài)輸入設(shè)備可以包括不會導(dǎo)致操作系統(tǒng)枚舉(enumerate)動態(tài)輸入設(shè)備并將動態(tài)輸入設(shè)備視為標(biāo)準(zhǔn)顯示監(jiān)視器和/或鍵盤的接口。然而,在一些實施例中,操作系統(tǒng)可以將動態(tài)輸入設(shè)備的鍵枚舉為標(biāo)準(zhǔn)鍵盤,但是不將觸摸區(qū)域枚舉為標(biāo)準(zhǔn)數(shù)字轉(zhuǎn)換器,以避免動態(tài)輸入設(shè)備上的觸摸被解釋為主顯示監(jiān)視器上的觸摸。如下面更詳細(xì)描述的,容器模塊62、虛擬運行時環(huán)境64和Π運行時應(yīng)用66可以提供其他軟件能夠調(diào)用的功能,以便接收來自動態(tài)輸入設(shè)備的輸入(例如觸摸輸入、鍵按壓等等)以及發(fā)送圖像輸出至動態(tài)輸入設(shè)備。計算系統(tǒng)50包括容器模塊62。容器模塊62可以提供一個或多個不同的控制器能夠在其中運行的環(huán)境。作為非限制示例,容器模塊62可以是MICROSOFT ACTIVEX 容器,其被配置成提供MICROSOFT ACTIVEX 控制器能夠在其中運行的環(huán)境。容器模塊62可以操縱、管理和提供服務(wù)給容器模塊所托管的所有控制器。例如,容器模塊62可以給控制器提供事件句柄(handle)。在一些實施例中,容器模塊可以作為桌面應(yīng)用的一部分來實現(xiàn)。
容器模塊62可以被配置成以運行在當(dāng)前活動的桌面的上下文中的運行時環(huán)境64的形式來托管控制器。雖然目前的公開與任何數(shù)量的不同的適當(dāng)運行時環(huán)境相兼容,但是在此提供MICROSOFT SILVERLIGHT 運行時環(huán)境作為非限制示例。使用這個示例,采用MICROSOFT ACTIVEX 容器形式的容器模塊62可以采用MICROSOFT SILVERLIGHT 插件(plug-in)的形式來托管運行時環(huán)境。然而,將明白可以使用其他的容器模塊和/或運行時環(huán)境而不脫離這個公開的范圍。作為非限制示例,運行時環(huán)境可以作為Adobe Flash 運行時環(huán)境來實現(xiàn)。在一些實施例中,運行時環(huán)境64可以是運行在當(dāng)前活動桌面的上下文中的無窗口運行時環(huán)境。換句話說,運行時環(huán)境64可能不像大多數(shù)的本機桌面應(yīng)用以及其他運行時環(huán)境那樣實例化專用GUI再現(xiàn)窗口。在一些實施例中,容器模塊和無窗口運行時環(huán)境可以利用開發(fā)人員使用來針對其他目的而開發(fā)應(yīng)用的相同框架。作為示例,無窗口運行時環(huán)境可以與本機瀏覽器應(yīng)用相兼容。就此而論,為了與本機瀏覽器應(yīng)用的兼容性而開發(fā)的應(yīng)用與容器模塊以及無窗口運行時環(huán)境相兼容。換句話說,開發(fā)人員可以使用與開發(fā)人員將使用來為本機瀏覽器應(yīng)用而開 發(fā)應(yīng)用相同的工具和約定來為無窗口運行時環(huán)境開發(fā)應(yīng)用。就此而論,針對無窗口運行時環(huán)境來開發(fā)是相對容易的。使用上面的示例,任何的熟悉開發(fā)Microsoft Silverlight 應(yīng)用的開發(fā)人員能夠開發(fā)用于與動態(tài)輸入設(shè)備一起使用的應(yīng)用。作為不同的示例,如果運行時環(huán)境作為Adobe Flash 運行時環(huán)境來實現(xiàn)的話,任何的熟悉開發(fā)Adobe Flash 應(yīng)用的開發(fā)人員能夠開發(fā)用于與動態(tài)輸入設(shè)備一起使用的應(yīng)用。計算系統(tǒng)50進(jìn)一步包括一個或多個在無窗口運行時環(huán)境內(nèi)執(zhí)行的輸入設(shè)備用戶界面運行時應(yīng)用(例如,Π運行時應(yīng)用66)。在這樣的情景中,在容器模塊62的外部執(zhí)行的不同應(yīng)用(例如,桌面應(yīng)用68)可以具有系統(tǒng)級活動焦點。就此而論,桌面應(yīng)用68將接收常規(guī)輸入,諸如來自直接輸入設(shè)備52的輸入和/或來自動態(tài)輸入設(shè)備中被枚舉成標(biāo)準(zhǔn)的直接輸入設(shè)備(例如,在一些實施例中動態(tài)鍵盤的鍵)的那些部分的輸入。然而,UI運行時應(yīng)用66可以被配置成接收來自動態(tài)輸入設(shè)備54的動態(tài)輸入消息。扼要,即使桌面應(yīng)用68接收來自一個或多個直接輸入設(shè)備的所有直接輸入消息,UI運行時應(yīng)用至少接收來自動態(tài)輸入設(shè)備的一些輸入。桌面應(yīng)用或其他主導(dǎo)應(yīng)用可以注冊和/或指定一個或多個能夠控制動態(tài)輸入設(shè)備上的可顯示輸出的輔助體驗。例如,這樣的輔助體驗可以采用在無窗口運行時環(huán)境中運行的Π運行時應(yīng)用的形式。作為一個非限制示例,輔助體驗可以被封裝為一個或多個Microsoft Silverlight XAP文件。這些輔助體驗?zāi)軌蚪?jīng)由客戶端應(yīng)用編程接口(API)來注冊。每一個主導(dǎo)應(yīng)用能夠注冊一個或多個體驗,并且主導(dǎo)應(yīng)用能夠基于主導(dǎo)應(yīng)用的當(dāng)前上下文來動態(tài)地指定所注冊的體驗之中哪一個是活動的。每一個XAP文件或輔助體驗的其他實現(xiàn)方式可以與主導(dǎo)應(yīng)用的特定上下文相關(guān)聯(lián)。在一些實現(xiàn)方式中,這樣的上下文可以對應(yīng)于可以借助于主導(dǎo)應(yīng)用來完成的不同的用戶任務(wù)(例如創(chuàng)建新的電子郵件、查找聯(lián)系人、安排新的會議、審查任務(wù)等等)。每一個上下文或任務(wù)可以通過利用被定制為幫助用戶執(zhí)行當(dāng)前活動的上下文或任務(wù)的圖像、虛擬控制器以及更新的鍵來動態(tài)地更新動態(tài)輸入設(shè)備而促進(jìn)。與特定上下文相對應(yīng)的輔助體驗可以被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示第一組虛擬控制器以及將第一組虛擬控制器的激活報告給主導(dǎo)應(yīng)用??蛻舳薃PI能夠被配置成為主導(dǎo)應(yīng)用提供信道來發(fā)送消息至輔助體驗和從輔助體驗接收消息。作為非限制示例,應(yīng)用編程接口可以包括對于主導(dǎo)應(yīng)用基于主導(dǎo)應(yīng)用的當(dāng)前上下文來指定輔助體驗的調(diào)用以及對于所指定的輔助體驗將借助于輔助體驗而顯示的虛擬控制器的激活返回報告給主導(dǎo)應(yīng)用的調(diào)用。在一些實施例中,操作系統(tǒng)可以被配置成將直接輸入和動態(tài)輸入路由至具有系統(tǒng)級活動焦點的應(yīng)用。例如,操作系統(tǒng)可以將直接輸入和動態(tài)輸入路由至桌面應(yīng)用。在這樣的實施例中,桌面應(yīng)用能夠被配置成確定特定輸入是動態(tài)的還是直接的。被確定為動態(tài)的輸入可以被路由至UI運行時應(yīng)用66,以便處理。在這樣的實施例中,桌面應(yīng)用和UI運行時應(yīng)用可以被配置成借助于任何適當(dāng)?shù)南鬟f方法(例如,消息傳遞API)來協(xié)作和共享信肩、O在其他的實施例中,操作系統(tǒng)可以被配置成確定特定輸入是動態(tài)的還是直接的。 在這樣的實施例中,操作系統(tǒng)可以被配置成將直接輸入路由至具有系統(tǒng)級活動焦點的應(yīng)用,而動態(tài)輸入被路由至Π運行時應(yīng)用。訪問控制層(ACL)可以使用來自注冊應(yīng)用中的注入掛鉤的輸入以及來自操作系統(tǒng)可訪問系統(tǒng)的輸入來做出有關(guān)什么最終再現(xiàn)的體驗將在動態(tài)輸入設(shè)備上的決定。在一種實現(xiàn)方式中,ACL監(jiān)視操作系統(tǒng)中的所有焦點變化,以便ACL知曉哪一個應(yīng)用具有焦點。在每一個焦點改變時,ACL能夠移除與喪失焦點的應(yīng)用相關(guān)聯(lián)的任何輔助體驗。接下來,ACL能夠查找是否贏得焦點的應(yīng)用具有任何注冊的輔助體驗。如果贏得焦點的應(yīng)用已注冊了輔助體驗,則當(dāng)前“活動的”輔助體驗被加載、被初始化并被準(zhǔn)備好來再現(xiàn)。如果贏得焦點的應(yīng)用沒有注冊的輔助體驗,則ACL可以加載、初始化以及準(zhǔn)備好默認(rèn)輔助體驗。一旦已識別并準(zhǔn)備好了正確的輔助體驗,則該輔助體驗任選地與該系統(tǒng)所提供的任何“默認(rèn)”體驗(例如,在鍵盤鍵上顯示的標(biāo)準(zhǔn)鍵盤圖像)相合成。如上所介紹的,在一些實施例中,再現(xiàn)系統(tǒng)可以是私自托管的MICROSOFT SILVERLIGHT 控制器。然而,可供選擇的運行時環(huán)境可以托管再現(xiàn)系統(tǒng)而不脫離這個公開的范圍。在這個示例中,MICROSOFT SILVERLIGHT 控制器中的活動內(nèi)容能夠利用ACL和/或支持控制模塊來管理。諸如MICROSOFT SILVERLIGHT 之類的無窗口運行時控制器可以作為用于動態(tài)輸入設(shè)備的唯一再現(xiàn)器來使用。使用該示例,無窗口運行時控制器是具有獨立焦點系統(tǒng)的可托管XAML再現(xiàn)器。獨立焦點系統(tǒng)允許恰當(dāng)?shù)目刂品答佋谳o助體驗中進(jìn)行顯示而不影響操作系統(tǒng)的焦點狀態(tài)。鼠標(biāo)消息可以基于從動態(tài)輸入設(shè)備接收的原始觸摸數(shù)據(jù)而被注入無窗口運行時控制器中,從而允許來自動態(tài)輸入設(shè)備的觸摸輸入直接與輔助體驗交互。QWERTY管理器能夠用于給輔助體驗提供關(guān)于什么鍵在鍵盤上正被按壓的通知。這個QWERTY管理器連同默認(rèn)QWERTY XAML布局一起為動態(tài)輸入設(shè)備上的每個鍵提供動態(tài)的恰當(dāng)?shù)脑佻F(xiàn)。這個QWERTY管理器提供獨立于操作系統(tǒng)來監(jiān)視所有擊鍵報告的機制。附加地,QWERTY管理器被配置成報告包括在運行時環(huán)境中可能沒有默認(rèn)支持的鍵按壓(key-press)在內(nèi)的所有鍵按壓。UI運行時應(yīng)用66可以被配置成將從設(shè)備消息導(dǎo)出的系統(tǒng)消息輸出到具有系統(tǒng)級活動焦點的應(yīng)用。這可以借助于桌面應(yīng)用與Π運行時應(yīng)用之間的通信信道來完成。系統(tǒng)消息允許具有系統(tǒng)級活動焦點的應(yīng)用借助于動態(tài)輸入設(shè)備來應(yīng)答用戶輸入??紤]到虛擬控制器或鍵的可改變功能,如可以利用在虛擬控制器或鍵上顯示的圖像所指示的,UI運行時應(yīng)用66能夠向具有系統(tǒng)級活動焦點的應(yīng)用發(fā)送與用戶激活的虛擬控制器或鍵相對應(yīng)的系統(tǒng)消息。這樣,動態(tài)輸入設(shè)備54可以用于控制具有系統(tǒng)級活動焦點的應(yīng)用。此外,與激活任何特定鍵或任何特定虛擬控制器相關(guān)聯(lián)的功能能夠動態(tài)地被改變,并且具有系統(tǒng)級活動焦點的應(yīng)用可以根據(jù)那個特定鍵或虛擬控制器的當(dāng)前功能經(jīng)由UI運行時應(yīng)用66來接收轉(zhuǎn)換的輸入。使用上面提供的示例,當(dāng)MICROSOFT ACTIVEX 容器從動態(tài)輸入設(shè)備54接收到觸摸輸入信息時,MICROSOFT ACTIVEX 容器將這個信息轉(zhuǎn)換為與MICROSOFT WINDOWS 鼠標(biāo)消息類似的信息并調(diào)用用于將輸入注入MICROSOFT SILVERLIGHT 插件(在這種情況中IOlelnPlaceOb jectffindowless: : OnffindowMessage ( . . ·))中的方法。如上所述,Π運行時應(yīng)用66可以被進(jìn)一步配置成向動態(tài)輸入設(shè)備54輸出顯示輸出消息。顯示輸出消息可以用于指定將由動態(tài)輸入設(shè)備顯示的一個或多個圖像。這樣的圖像能夠被用作視覺提示,其將與特定鍵或虛擬控制器動態(tài)相關(guān)聯(lián)的功能用信號通知 (signal)用戶。如上所述,UI運行時應(yīng)用66能夠輸出與顯示在用戶輸入所針對并被檢測至IJ的位置(例如,鍵或虛擬控制器)上的圖像相對應(yīng)的系統(tǒng)消息。使用上面提供的示例,在處理鼠標(biāo)消息中,MICROSOFT SILVERLIGHT 插件能夠改變動態(tài)輸入設(shè)備的視覺外觀。例如,該插件可以借助于101elnPlaceSiteWindowless:
:InvalidateRect ( . . ·)將臟矩形(即,改變的像素的集合)通知容器模塊62。例如,容器模塊62可以使用臟矩形來要求插件借助于IViewObject: :Draw(...)將無效區(qū)域拖至位圖。容器模塊62隨后可以借助于恰當(dāng)?shù)恼{(diào)用使用臟矩形和源自位圖的比特來利用新的圖像數(shù)據(jù)僅更新動態(tài)輸入設(shè)備中無效的部分。運行時環(huán)境64可以任選地包括輸入模塊70和/或輸出模塊72。在被包括時,輸入模塊70和輸出模塊72可以用于處理動態(tài)輸入設(shè)備54與計算系統(tǒng)50之間的通信。在一些實施例中,UI運行時應(yīng)用66、容器模塊62和/或操作系統(tǒng)60可以用于處理動態(tài)輸入設(shè)備54與計算系統(tǒng)50之間的通信。在一些實施例中,能夠具有系統(tǒng)級活動焦點的桌面應(yīng)用和/或其他應(yīng)用或模塊可以被配置來幫助處理在動態(tài)輸入設(shè)備54與計算系統(tǒng)50之間的通信。在此介紹的API可以用于促進(jìn)這樣的通信。計算系統(tǒng)50可以任選地包括安全通信模塊74。安全通信模塊可以用于促進(jìn)在Π運行時應(yīng)用66、運行時環(huán)境64和/或容器模塊62以及計算系統(tǒng)的其他方面之間的安全通信。作為一個非限制示例,UI運行時應(yīng)用66、運行時環(huán)境64和/或容器模塊62可以具有能夠用于驗證所有消息的簽名的數(shù)字證書,以便計算系統(tǒng)的其他方面能夠驗證該證書來確保這些消息來自信任的源。計算系統(tǒng)50也可以包括能夠由各種系統(tǒng)組件使用來訪問包括傳送消息在內(nèi)的系統(tǒng)功能的一個或多個系統(tǒng)API 76。雖然在圖3中沒有顯示,但是在一些實施例中,動態(tài)輸入設(shè)備可以利用API 76。返回到圖3,在一些實施例中,計算系統(tǒng)50包括邏輯子系統(tǒng)78和數(shù)據(jù)保持子系統(tǒng)80。邏輯子系統(tǒng)78可以包括被配置成執(zhí)行一個或多個指令的一個或多個物理設(shè)備。例如。邏輯子系統(tǒng)可以被配置成執(zhí)行一個或多個指令,其中這一個或多個指令是一個或多個程序、例程、對象、組件、數(shù)據(jù)結(jié)構(gòu)或其他邏輯構(gòu)造的一部分。這樣的指令可以被實現(xiàn)來執(zhí)行任務(wù)、實現(xiàn)數(shù)據(jù)類型、轉(zhuǎn)換一個或多個設(shè)備的狀態(tài)或者以其他方式達(dá)到所希望的結(jié)果。邏輯子系統(tǒng)可以包括被配置來執(zhí)行軟件指令的一個或多個處理器。附加地或替換地,邏輯子系統(tǒng)可以包括被配置來執(zhí)行硬件或固件指令的一個或多個硬件或固件邏輯機。邏輯子系統(tǒng)可以任選地包括遍及兩個或更多設(shè)備分布的個別組件,其在一些實施例中可以遠(yuǎn)程定位。數(shù)據(jù)保持子系統(tǒng)80可以包括一個或多個物理的非暫時的設(shè)備,其被配置來保持由邏輯子系統(tǒng)可執(zhí)行以實現(xiàn)在此描述的方法和進(jìn)程(process)的數(shù)據(jù)和/或指令。作為非限制示例,數(shù)據(jù)保持子系統(tǒng)80可以用于保持用于執(zhí)行操作系統(tǒng)60、容器模塊62、運行時環(huán)境64、UI運行時應(yīng)用66以及桌面應(yīng)用68的指令。在實現(xiàn)這樣的方法和進(jìn)程時,數(shù)據(jù)保持子系統(tǒng)80的狀態(tài)可以被變換(例如,以保持不同的數(shù)據(jù))。數(shù)據(jù)保持子系統(tǒng)80可以包括可移除媒體和/或內(nèi)置設(shè)備。特別地,數(shù)據(jù)保持子系統(tǒng)80可以包括光存儲設(shè)備、半導(dǎo)體存儲設(shè)備和/或磁存儲設(shè)備。數(shù)據(jù)保持子系統(tǒng)80可以包括具有以下特性中的一個或多個特性的設(shè)備易失性,非易失性,動態(tài)的,靜態(tài)的,讀/寫型,只讀型,隨機存取型,順序存取型,位置可尋址的,文件可尋址的以及內(nèi)容可尋址的。在一些實施例中,邏輯子系統(tǒng)78和數(shù)據(jù)保
持子系統(tǒng)80可以被集成在一個或多個通用設(shè)備諸如專用集成電路或片上系統(tǒng)中。術(shù)語“模塊”和“引擎”可以用于描述被實現(xiàn)來執(zhí)行一個或多個特定功能的計算系統(tǒng)50的方面。在一些情況中,這樣的模塊或引擎可以借助于執(zhí)行由數(shù)據(jù)保持子系統(tǒng)80保持的指令的邏輯子系統(tǒng)78來實例化。將明白不同的模塊和/或引擎可以根據(jù)相同的應(yīng)用、碼塊、對象、例程和/或功能來實例化。同樣,相同的模塊和/或引擎在一些情況中可以利用不同的應(yīng)用、碼塊、對象、例程和/或功能來實例化。如上所述,桌面應(yīng)用和輔助體驗(例如Π運行時應(yīng)用)可以協(xié)作來給用戶提供豐富且交互式輸入體驗。各種不同的架構(gòu)和協(xié)議可以用于實現(xiàn)參考圖3所描述的范例。圖4和5顯示兩個不同的示例架構(gòu)。在圖4和5的示例架構(gòu)中,動態(tài)輸入設(shè)備作為光柵化設(shè)備來處理。因此,軟件堆棧不必支持動態(tài)輸入設(shè)備中復(fù)雜的GPU,而是所有復(fù)雜的合成和再現(xiàn)能夠在主計算設(shè)備上完成。就此而論,只有光柵圖像(位圖)被傳遞至動態(tài)輸入設(shè)備。在其中動態(tài)輸入設(shè)備不是簡單的光柵化器而是具有更強大CPU和/或GPU的設(shè)備的實施例中,該架構(gòu)可以被擴展,以便在動態(tài)輸入設(shè)備本身上托管運行時環(huán)境。設(shè)備抽象能夠用于枚舉動態(tài)輸入設(shè)備的所有自適應(yīng)特征(例如,動態(tài)輸入設(shè)備包括鍵盤嗎?動態(tài)輸入設(shè)備包括觸摸傳感器嗎?什么是觸摸傳感器的大?。康鹊?。設(shè)備抽象也能夠用于控制在動態(tài)輸入設(shè)備上再現(xiàn)什么。設(shè)備抽象接口也能夠用于從無窗口運行時控制器得到完全再現(xiàn)的位圖,并將完全再現(xiàn)的位圖路由至動態(tài)輸入設(shè)備,以便顯示。設(shè)備抽象接口也提供用于動態(tài)輸入設(shè)備報告觸摸數(shù)據(jù)以及與動態(tài)輸入設(shè)備進(jìn)行的任何其他用戶交互的設(shè)施。這個觸摸數(shù)據(jù)以及其他信息可以被返回路由,用于在無窗口運行時控制器中在當(dāng)前運行視覺樹中的表達(dá)。抽象是總線(例如USB、以太網(wǎng)等等)不可知的(agnostic)。圖4顯示使用共享的無窗口運行時環(huán)境92的示例架構(gòu)90,其中環(huán)境92被配置來執(zhí)行利用兩個或更多不同的主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面運行時應(yīng)用。特別地,示例架構(gòu)使用具有訪問控制層(ACL) 94的單個MICROSOFT SILVERLIGHT 控制器,其中訪問控制層被配置成利用那個單個MICROSOFT SILVERLIGHT 控制器來管理源于所有應(yīng)用的所有已注冊內(nèi)容。如上所述,可以使用不同的運行時環(huán)境而不脫離這個公開的范圍。這個架構(gòu)使用單個控制器,并因而使用跨越進(jìn)程邊界的較少的數(shù)據(jù)實例。然而,任何已注冊輔助體驗中的任何錯誤代碼可能影響所有其他的體驗。圖5顯示使用本地?zé)o窗口運行時環(huán)境98的示例架構(gòu)96,其中本地?zé)o窗口運行時環(huán)境98利用主導(dǎo)應(yīng)用100來托管并被配置成執(zhí)行僅利用主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面運行時應(yīng)用。特別地,在注冊/激活輔助體驗的每一個主導(dǎo)應(yīng)用的進(jìn)程內(nèi)創(chuàng)建MICROSOFT SILVERLIGHT 控制器。另一個 MICROSOFT SILVERLIGHT 控制器 102 在用于利用訪問控制層104的規(guī)則來控制的最終組成的單獨的運行時間中被創(chuàng)建。除了跟蹤焦點改變之外,ACL還被增強來跟蹤來自每個相關(guān)聯(lián)的應(yīng)用/體驗的當(dāng)前位圖。這個架構(gòu)將所有的應(yīng)用體驗保持為獨立的,并且給定體驗中的壞代碼僅影響供應(yīng)壞代碼的應(yīng)用。附加地,任何安全問題也被包含在應(yīng)用自身中。因為主導(dǎo)應(yīng)用和體驗二者在相同的進(jìn)程中,所以這個架構(gòu)也可以允許在主導(dǎo)應(yīng)用與相關(guān)聯(lián)的被托管體驗之間更高保真度通信信道。這個架構(gòu)可以使用更高的帶寬用于跨越進(jìn)程數(shù)據(jù)共享。圖4和5中所示的并在上面描述的示例架構(gòu)不進(jìn)行限制。可以使用其他的架構(gòu)而
不脫離這個公開的范圍。圖6頗為示意性地顯示其中通過動態(tài)輸入設(shè)備112執(zhí)行用戶輸入的序列110,其中動態(tài)輸入設(shè)備可以充當(dāng)使用顯示器114的計算設(shè)備(例如,圖3的計算系統(tǒng)50,未顯示)的外設(shè)。在所示的示例中,電子郵件應(yīng)用116當(dāng)前具有計算設(shè)備的系統(tǒng)級活動焦點,并且電子郵件應(yīng)用正采用UI運行時應(yīng)用的形式與輔助體驗協(xié)作。序列110演示上述的系統(tǒng)和方法的示例實現(xiàn)方式,其允許計算設(shè)備在動態(tài)輸入設(shè)備112和顯示器114 二者上呈現(xiàn)圖形。所示的序列110借助于按年代順序從時間tl前進(jìn)到時間t4的時間線來描繪。在tl,通過用戶在動態(tài)輸入設(shè)備112上執(zhí)行鍵輸入來啟動輸入序列。在所示的示例中,鍵輸入是其中用戶按下t鍵并隨后按下r鍵的鍵向下(key-down)輸入。將注意動態(tài)輸入設(shè)備112可以在每個鍵上顯示圖像(例如,在t鍵上“t”的圖像以及在r鍵上“r”的圖像)。然而,為了簡化理解,圖6僅在與這個示例相關(guān)的那些鍵上顯示鍵圖像。包括在動態(tài)輸入設(shè)備中的輸入感測子系統(tǒng)可以檢測鍵輸入并發(fā)送鍵輸入信號給計算系統(tǒng),如上所述??梢允褂萌魏芜m當(dāng)類型的消息和/或編碼來報告鍵輸入。計算設(shè)備可以處理輸入信號,如上所述。顯示器隨后可以從計算設(shè)備接收信號并改變在顯示器上呈現(xiàn)的活動內(nèi)容。在這個示例中,與這些鍵相對應(yīng)的字母在相應(yīng)鍵被激活時在文本框118中進(jìn)行顯示。電子郵件應(yīng)用也可以分析輸入,并預(yù)測用戶正在嘗試用電子郵件發(fā)送的內(nèi)容。在t2,動態(tài)輸入設(shè)備從計算設(shè)備接收信號,并在動態(tài)輸入設(shè)備的觸摸顯示器121上呈現(xiàn)多個虛擬按鈕(即聯(lián)系人控制按鈕120a、聯(lián)系人控制按鈕120b、聯(lián)系人控制按鈕120c)。與電子郵件應(yīng)用已確定的聯(lián)系人相對應(yīng)的虛擬按鈕是電子郵件最可能的接收方。將意識到虛擬按鈕可以充當(dāng)用戶可以觸摸來激活的觸摸屏上的控制器。虛擬按鈕可以借助于正向電子郵件應(yīng)用提供輔助體驗的Π運行時應(yīng)用而被提供給動態(tài)輸入設(shè)備。如上所述,UI運行時應(yīng)用可以是無窗口控制器。在t3,用戶執(zhí)行針對利用動態(tài)輸入設(shè)備顯示的虛擬按鈕之一(S卩,聯(lián)系人控制按鈕120a)的觸摸輸入。感測子系統(tǒng)檢測觸摸輸入,并向計算設(shè)備發(fā)送消息。如上所述,即使電子郵件應(yīng)用具有系統(tǒng)級活動焦點,這個消息也能夠利用UI運行時應(yīng)用來處理。一旦接收到消息,Π運行時應(yīng)用能夠與電子郵件應(yīng)用通信,指示用戶已選擇與聯(lián)系人控制按鈕120a相對應(yīng)的聯(lián)系人。在t4,響應(yīng)于觸摸輸入,并且一旦接收到來自UI運行時應(yīng)用的通信,電子郵件應(yīng)用自動填充并顯示與聯(lián)系人控制按鈕120a相對應(yīng)的聯(lián)系人的電子郵件地址122。如通過上面的示例能夠意識到的,在此描述的系統(tǒng)和方法允許動態(tài)輸入設(shè)備以能夠被用戶激活的虛擬控制器和/或動態(tài)鍵的方式向用戶顯示信息。此外,在此描述的系統(tǒng) 和方法允許虛擬控制器的激活,并且在一些實施例中,允許動態(tài)鍵起作用而沒有系統(tǒng)級活動焦點的正常限制。圖7顯示使用無窗口運行時環(huán)境來管理來自動態(tài)輸入設(shè)備的輸入的示例方法130。在132,方法130包括托管一個或多個運行時環(huán)境,其包括無窗口運行時環(huán)境。在134,方法130包括從動態(tài)輸入設(shè)備接收動態(tài)輸入消息,而在無窗口運行時環(huán)境外部執(zhí)行的另一個應(yīng)用具有系統(tǒng)級活動焦點。圖8顯示用于主導(dǎo)應(yīng)用利用動態(tài)輸入設(shè)備來實現(xiàn)輔助體驗的示例方法140。在142,方法140包括確定主導(dǎo)應(yīng)用的第一上下文。例如,主導(dǎo)應(yīng)用可以自行確定主導(dǎo)應(yīng)用處于特定上下文(例如創(chuàng)建新的電子郵件,查找聯(lián)系人,安排新的會議,審查任務(wù)等等)中。應(yīng)用能夠具有各種不同的上下文,其中每一個上下文可以對應(yīng)于不同的輔助體驗。在144,方法140包括指定第一輔助體驗。所指定的輔助體驗與主導(dǎo)應(yīng)用相分離并對應(yīng)于主導(dǎo)應(yīng)用的第一上下文。如上所述,所指定的輔助體驗可以被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示第一組虛擬控制器并將第一組虛擬控制器的激活報告給主導(dǎo)應(yīng)用。在146,方法140包括確定與主導(dǎo)應(yīng)用的第一上下文不同的主導(dǎo)應(yīng)用的第二上下文。例如,主導(dǎo)應(yīng)用可以自行確定主導(dǎo)應(yīng)用已從第一上下文改變?yōu)榈诙舷挛?例如從創(chuàng)建電子郵件上下文改變?yōu)榘才偶s會上下文)。不同的上下文可以對應(yīng)于將要借助于動態(tài)輸入設(shè)備來顯示的不同的輔助體驗。在148,方法140包括指定與主導(dǎo)應(yīng)用相分離并與第一輔助體驗不同的第二輔助體驗。第二輔助體驗對應(yīng)于主導(dǎo)應(yīng)用的第二上下文,并被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示第二組虛擬控制器以及將第二組虛擬控制器的激活報告給主導(dǎo)應(yīng)用。將明白在此描述的配置和/或方法本質(zhì)上是示例性的,并且這些特定的實施例或示例將不在限制意義上被考慮,這是因為許多變體是可能的。在此描述的特定例程或方法可以代表任何數(shù)量的處理策略中的一種或多種處理策略。就此而論,所示的各種動作可以在所示的序列中、在其他序列中、并行或在省略的某些情況中被執(zhí)行。同樣,上述進(jìn)程的順序可以被改變。目前公開的主題包括在此公開的各種進(jìn)程、系統(tǒng)和配置以及其他特征、功能、動作和/或?qū)傩缘乃行路f的以及非顯而易見的組合和子組合以及其任何的與所有的等價物。
權(quán)利要求
1.一種計算系統(tǒng),包括 一個或多個輸入設(shè)備用戶界面運行時應(yīng)用,用于在動態(tài)輸入設(shè)備上動態(tài)地顯示圖像,所述一個或多個輸入設(shè)備用戶界面運行時應(yīng)用被配置成在無窗口運行時環(huán)境內(nèi)執(zhí)行,其中無窗口運行時環(huán)境被配置成在當(dāng)前活動的桌面中執(zhí)行;以及 主導(dǎo)應(yīng)用,被配置成在當(dāng)前活動的桌面中在無窗口運行時環(huán)境外部執(zhí)行,所述主導(dǎo)應(yīng)用被配置成指定與主導(dǎo)應(yīng)用的當(dāng)前上下文相對應(yīng)的輸入設(shè)備用戶界面運行時應(yīng)用,并且所指定的輸入設(shè)備用戶界面運行時應(yīng)用被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示虛擬控制器以及向主導(dǎo)應(yīng)用報告虛擬控制器的激活。
2.權(quán)利要求I的計算系統(tǒng),其中無窗口運行時環(huán)境是被配置成執(zhí)行利用兩個或更多不同的主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面運行時應(yīng)用的共享無窗口運行時環(huán)境。
3.權(quán)利要求I的計算系統(tǒng),其中無窗口運行時環(huán)境是利用主導(dǎo)應(yīng)用托管并被配置成執(zhí)行利用主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面運行時應(yīng)用的本地?zé)o窗口運行時環(huán)境。
4.權(quán)利要求I的計算系統(tǒng),其中無窗口運行時環(huán)境是Microsoft ActiveX 控制器。
5.權(quán)利要求4的計算系統(tǒng),其中Microsoft ActiveX 控制器是Microsoft Silverlight 插件。
6.權(quán)利要求4的計算系統(tǒng),其中Microsoft ActiveX 控制器是Adobe Flash 插件。
7.權(quán)利要求I的計算系統(tǒng),其中一個或多個輸入設(shè)備用戶界面運行時應(yīng)用是Microsoft Si lverl ight 應(yīng)用。
8.權(quán)利要求I的計算系統(tǒng),其中一個或多個輸入設(shè)備用戶界面運行時應(yīng)用作為一個或多個 Microsoft Si lverl ight XAP 文件被封裝。
9.權(quán)利要求I的計算系統(tǒng),進(jìn)一步包括應(yīng)用編程接口,其包括對于主導(dǎo)應(yīng)用指定輸入設(shè)備用戶界面運行時應(yīng)用的第一調(diào)用以及對于所指定的輸入設(shè)備用戶界面運行時應(yīng)用向主導(dǎo)應(yīng)用報告虛擬控制器的激活的第二調(diào)用。
10.權(quán)利要求9的計算系統(tǒng),其中應(yīng)用編程接口被配置成在主導(dǎo)應(yīng)用的當(dāng)前上下文改變時允許主導(dǎo)應(yīng)用改變在無窗口運行時環(huán)境內(nèi)執(zhí)行的一個或多個輸入設(shè)備用戶界面運行時應(yīng)用,以便在動態(tài)輸入設(shè)備上動態(tài)顯示的虛擬控制器對應(yīng)于主導(dǎo)應(yīng)用的當(dāng)前上下文。
11.一種用于主導(dǎo)應(yīng)用在動態(tài)輸入設(shè)備上實現(xiàn)輸入設(shè)備用戶界面的方法,所述方法包括: 確定主導(dǎo)應(yīng)用的第一上下文; 指定與利用主導(dǎo)應(yīng)用提供的桌面用戶界面相分離并與主導(dǎo)應(yīng)用的第一上下文相對應(yīng)的第一輸入設(shè)備用戶界面,第一輸入設(shè)備用戶界面被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示第一組虛擬控制器并向主導(dǎo)應(yīng)用報告第一組虛擬控制器的激活; 確定與主導(dǎo)應(yīng)用的第一上下文不同的主導(dǎo)應(yīng)用的第二上下文;和 指定與主導(dǎo)應(yīng)用相分離并且與第一輸入設(shè)備用戶界面不同的第二輸入設(shè)備用戶界面,第二輸入設(shè)備用戶界面對應(yīng)于主導(dǎo)應(yīng)用的第二上下文并且被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示第二組虛擬控制器以及向主導(dǎo)應(yīng)用報告第二組虛擬控制器的激活。
12.權(quán)利要求11的方法,其中指定第一輸入設(shè)備用戶界面包括將第一輸入設(shè)備用戶界面遞送至被配置成執(zhí)行利用兩個或更多不同的主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面的共享的無窗口運行時環(huán)境。
13.權(quán)利要求11的方法,其中指定第一輸入設(shè)備用戶界面包括將第一輸入設(shè)備用戶界面遞送至利用主導(dǎo)應(yīng)用托管并被配置成執(zhí)行利用主導(dǎo)應(yīng)用指定的輸入設(shè)備用戶界面的本地?zé)o窗口運行時環(huán)境。
14.權(quán)利要求11的方法,其中第一輸入設(shè)備用戶界面經(jīng)由應(yīng)用編程接口被遞送至無窗口運行時環(huán)境。
15.權(quán)利要求14的方法,其中當(dāng)在無窗口運行時環(huán)境內(nèi)執(zhí)行第一輸入設(shè)備用戶界面時,應(yīng)用編程接口在主導(dǎo)應(yīng)用與第一輸入設(shè)備用戶界面之間提供通信信道。
全文摘要
計算系統(tǒng)包括一個或多個輸入設(shè)備用戶界面運行時應(yīng)用,用于在動態(tài)輸入設(shè)備上動態(tài)地顯示圖像。一個或多個輸入設(shè)備用戶界面運行時應(yīng)用在當(dāng)前活動的桌面中被執(zhí)行。計算系統(tǒng)進(jìn)一步包括被配置成在當(dāng)前活動的桌面中執(zhí)行的主導(dǎo)應(yīng)用。主導(dǎo)應(yīng)用被配置成指定與主導(dǎo)應(yīng)用的當(dāng)前上下文相對應(yīng)的輸入設(shè)備用戶界面運行時應(yīng)用。所指定的輸入設(shè)備用戶界面運行時應(yīng)用被配置成在動態(tài)輸入設(shè)備上動態(tài)地顯示虛擬控制器。所指定的輸入設(shè)備用戶界面運行時應(yīng)用也被配置成向主導(dǎo)應(yīng)用報告虛擬控制器的激活。
文檔編號G06F3/01GK102934052SQ201180030137
公開日2013年2月13日 申請日期2011年6月6日 優(yōu)先權(quán)日2010年6月18日
發(fā)明者R.特納, R.D.楊, D.M.桑斯特, S.R.洪吉, E.弗利加爾, M.武爾夫森, 田憲峰, K.J.史密斯 申請人:微軟公司