專利名稱:用于提供帶有自動搜索菜單的用戶界面的系統(tǒng)和方法
技術領域:
本發(fā)明涉及計算機用戶界面,尤其涉及為用戶界面中的選擇搜索并然后顯示菜單項。
背景技術:
人類往往按照聯(lián)想的方式思考,所以執(zhí)行特定任務的期望更自然地關聯(lián)于單個關鍵詞而非通過菜單的路徑。正是要記住任務和通過菜單以及其它用戶界面(UI)元素的路徑之間的關聯(lián)的需求很大程度上造成了計算機常常難以使用。
在任何時刻,都存在可供用戶使用的眾多命令,且目前這些命令一般是以人們難以遍歷的分層結構來組織的。一般而言,為了訪問當前計算環(huán)境的菜單系統(tǒng)中的某內容,用戶必須手動地(即,視覺上并通過用鼠標或鍵盤來作出眾多選擇)遍歷樹。訪問文檔需要遍歷目錄樹。訪問命令需要遍歷菜單樹。在任何給定時刻一個人可以做許多事,而將這些選項安排成樹是使得人們易于獲取所期望的命令的傳統(tǒng)方式。人類不十分擅長于沿長列表進行線性搜索,所以分層的菜單系統(tǒng)已向用戶提供實質上為手動的基于樹的搜索,而對于大型的分層結構,這往往是困難而消耗時間的。
為此,存在對為任何層次的用戶簡化和加速對大量命令的訪問的系統(tǒng)和方法的需求。
發(fā)明內容
考慮本領域的上述缺陷,本發(fā)明的一方面提供用于提供菜單項的分層視圖的系統(tǒng)和方法。該方法包括基于輸入的搜索準則來搜索分層結構,并且然后僅顯示該分層結構的一部分。所顯示的部分是僅當匹配搜索準則的菜單項存在于分層結構中時才顯示它們所必須的那些部分。
相關聯(lián)的搜索過程包括用戶輸入至少一個字符,然后幾乎立即基于所輸入的至少一個字符搜索分層結構。也提供了當用戶鍵入額外字符時基于該額外字符繼續(xù)重復搜索和顯示動作的過程。用戶可以在將要顯示的分層結構上方的編輯框內輸入該至少一個字符。將在以下描述本發(fā)明的其它優(yōu)點和特征。
參考附圖進一步描述根據本發(fā)明用于提供帶有自動搜索菜單的用戶界面的系統(tǒng)和方法,附圖中圖1是以樹視圖示出在基于用戶鍵入的關鍵詞的自動搜索過程中找到的命令的圖形用戶界面菜單的示意圖;圖2是示出基于用戶鍵入的關鍵詞對可用命令的搜索過程的流程圖;圖3是示出向如圖1的菜單中所示的樹中插入被發(fā)現(xiàn)為匹配該關鍵詞的元素的圖2的過程的更詳細視圖的流程圖;圖4a是處于被構建來在如圖1中所示的樹視圖中顯示命令的過程中的樹的示意圖。
圖4b是為了在如圖1中所示的樹視圖中顯示命令而構建的已完成的樹的示意圖。
圖5是表示適于結合本發(fā)明的各方面使用的示例性計算設備的框圖;圖6示出了可在其中實現(xiàn)眾多計算機化的過程的示例性網絡化計算環(huán)境。
具體實施例方式
在以下描述和附圖中描述了某些具體細節(jié),用于提供對本發(fā)明的各個實施例的全面理解。通常與計算和軟件技術相關聯(lián)的某些公知細節(jié)將不在以下揭示中描述,以避免對本發(fā)明的各實施例的不必要的模糊。而且,本領域的普通技術人員可以理解,可以無需以下描述的細節(jié)中的一個或多個而實現(xiàn)本發(fā)明的其它實施例。最后,盡管在以下揭示中是參考步驟和序列來描述各個方法的,但是如此的描述是用于提供本發(fā)明的實施例的清楚的實現(xiàn)方式,且步驟以及步驟的序列不應被作為實現(xiàn)本發(fā)明所必需的。
概觀描述了用于提供帶有自動搜索菜單或“Auto Search Menu”的用戶界面的系統(tǒng)和方法。所描述的是一種可供用戶所用的命令的即時可搜索樹視圖,作為用于提供對應用程序命令、程序和文件的快速訪問的工具。首先,將描述具有可搜索樹視圖的示例性菜單界面。然后,將描述用于為這樣的菜單創(chuàng)建樹視圖的過程以及使用圖1所示的某些命令的一個示例實現(xiàn)。最后,圖5和6提供了可被認為一般適于結合此處所述的系統(tǒng)和方法使用的計算和網絡化環(huán)境。因為圖5和6中的材料一般用于示例性的目的,因此在本說明書的最后,名為“示例性計算和網絡化環(huán)境”的一節(jié)中保留相應的描述。
菜單界面首先參考圖1,所示是以樹視圖顯示在基于用戶鍵入的關鍵詞的自動搜索過程中找到的命令的圖形用戶界面菜單的示意圖。所示的是編輯框101、鍵入的關鍵字102以及含有例如可以是命令104的匹配項104的匹配樹103。用戶在編輯框101中鍵入關鍵字或部分關鍵字102,而所得的匹配該關鍵字的命令104在匹配樹103中顯示。除了分層結構中匹配輸入的關鍵詞102的那些命令104在匹配樹103中被顯示之外,命令104在同一分層結構中如同其正??磥砟菢语@示,這允許用戶能容易地找到并選擇他或她正尋找的項。
在向編輯框101中輸入任何字符大致一秒鐘之后,所顯示的分層結構(即,匹配樹103)被減小為僅含有匹配輸入的關鍵詞102的那些項104。這是由定時器控制的。在大致一秒鐘的期限之前用戶在編輯框101中輸入另一字符將復位該定時器。這允許用戶鍵入所必需的或多或少的關鍵字來將分層結構103減少至少量項,少量項中的一個可以通過例如鼠標點擊或鍵盤來選取。
在圖1所呈現(xiàn)的示例中,用戶已經在編輯框101中鍵入多個字母“wor”作為關鍵詞102。這樣,找到的匹配104是在命令標簽中含有串“wor”的那些命令。命令“Microsoft Word”、“PuzzleWord”以及“WordPad”是啟動它們相關聯(lián)的軟件應用程序的命令,而命令“Work Report”是打開名為“Work Report”的相關聯(lián)文件的命令。所有這些項104被標識為包含在匹配樹103中的匹配,因為它們在其各自的命令標簽中含有串“wor”,這匹配輸入的關鍵詞102。
或者,與可能的項104相關聯(lián)的、要在匹配樹103中顯示的其它信息可以用于執(zhí)行尋找匹配的搜索。例如,命令的類型或軟件應用程序的類型在其出現(xiàn)在菜單中時可以用于替代命令標簽。例如,如果所輸入的關鍵詞為“draw(繪圖)”,那么將顯示所有繪圖軟件應用程序?;蛘?,對打開文件的命令,可在編輯框中鍵入作者名,而將在分層結構103中顯示打開由該作者編寫的文檔的所有命令。一般,存在與每一命令或底層相關聯(lián)對象相關聯(lián)的元數(shù)據,無論該對象是文件還是應用程序,元數(shù)據提供關于可以用于執(zhí)行匹配輸入的關鍵詞102的搜索的對象的額外信息。
然后參考圖2,所示為示出基于用戶鍵入的關鍵詞對可用命令的搜索過程以創(chuàng)建圖1的匹配樹103的流程圖。首先,清除匹配樹(110)來開始新的搜索。可用的命令或菜單項之前被索引在列表中,該列表之后在搜索過程中被逐項遍歷(111)。當前元素被設為索引中的第一元素或項(112)。然后將列表中的元素或項的命令名或其它相關聯(lián)的信息與用戶輸入的關鍵字進行比較(113)。如果它們匹配,那么元素被插入(114)至匹配樹103中。如果它們不匹配,那么從索引中讀取下一元素115。如果到達索引的結尾(由下一讀取的元素為空或0確定(116)),那么終止搜索(117)。否則,搜索循環(huán)繼續(xù)檢查從索引中讀取的下一元素(113),向匹配樹103添加匹配(114)直到到達(116)索引的結尾。
下一步參考圖3,所示為示出向匹配樹103插入(114)被發(fā)現(xiàn)為匹配關鍵字101的元素的圖2的過程的更詳細視圖的流程圖。將元素插入至匹配樹103的過程背后的原理不僅是插入元素本身,而是還要構建當元素在所有可用命令的分層結構中存在時在其位置中顯示該元素的匹配樹。為此,一旦在索引中找到元素,向下通往該元素向并包含該元素的子菜單鏈必須被嫁接至匹配樹103(如果該子菜單鏈不是已經存在于匹配樹103中)。對遞歸過程的以下圖形描述示出了實現(xiàn)該功能的一種方式,但也可以使用給出同一結果的其它可能的變化和方法。
一旦找到匹配,圖3的過程114被啟動(120),清除存儲器中的遞歸棧(121)。下一步,確定當前元素是否具有父元素(122)。如果是,那么然后確定當前元素的父元素是否存在于樹中(123)。如果否,那么開始遞歸例程且將當前元素添加至存儲器中的遞歸棧中(124)。然后,將當前元素設為當前元素的父元素(125),并通過再次確定現(xiàn)在當前元素是否具有父元素122來繼續(xù)循環(huán)。
以上遞歸動作繼續(xù)向上遍歷,直到當前元素不具有父元素(即,它為根)(126),或者當前元素的父元素被發(fā)現(xiàn)已存在于匹配樹103中(127)。在這一點上,例程跳出遞歸循環(huán),且將當前元素作為根插入匹配樹103中(128)(如果當前元素不具有父元素),或者將當前元素直接插在匹配樹103中找到的其父元素之下(129)。然后,確定遞歸棧是否為空(130)。如果是(131),那么插入至樹的過程114結束(132)。否則,當前元素被設為遞歸棧上的下一元素(133),且從遞歸棧中移除下一元素(134)。該過程然后在確定當前元素是否具有父元素(122)的點上繼續(xù)。該循環(huán)然后繼續(xù),直到遞歸棧為空(131),從而使得之前放入遞歸棧上的所有那些元素都被插入到匹配樹102中其各自雙親之下(129)。
下一步參考圖4a和4b,所示分別為處于被構建來在圖1所示的樹視圖中顯示命令的過程中的示例性匹配樹的示意圖,以及對應于圖1的樹視圖的完成的匹配樹的示意圖。所示的是程序元素135,其下為附件136、MICROSOFT WORD137和PUZZLEWORD138元素。附件136元素之下的為WORDPAD139元素。同樣,如圖4b中所示,示出了另外包含處于適當位置的文檔140元素和WorkReport元素141的已完成的匹配樹。圖4a 103示出了還沒有處于適當位置的文檔和元素的匹配樹,但是根據以下示例中所述,將根據圖3的過程添加這些元素。
首先,根據圖2,由于用戶鍵入字母“wor”,元素Work Report 141將被標識為匹配(113)。然后用于將Work Report 141的匹配插入(114)至匹配樹的圖3的過程將開始。首先,一旦清空遞歸棧(121),就確定元素Work Report是否具有父元素(122)。該元素具有父元素,即元素文檔140,所以然后確定(123)該父元素是否存在于匹配樹103中。它不存在,所以當前元素Work Report 141被添加至遞歸棧(125),且當前元素被設為當前元素的父元素,即文檔140。該過程然后繼續(xù)確定該文檔是否具有父元素122。因為它不具有父元素,因此它被插入至匹配樹103中作為菜單根134之下的根元素140。然后,確定遞歸棧是否為空(130)。遞歸棧不為空,因為之前向其添加了元素Work Report 141。因此,當前元素被設為遞歸棧上的下一元素,即Work Report 141,且然后從遞歸棧中將其刪除(134)。遞歸?,F(xiàn)在為空,因為Work Report 141是之前向其添加的僅有的元素。
該過程繼續(xù)確定當前元素是否具有父元素。當前元素Work Report的確具有父元素,即文檔140。然而,這次文檔140的確存在于匹配樹中,因為它之前被添加(128)。這樣,當檢查123來查看當前元素的父元素是否存在于樹103中時,該過程將繼續(xù)插入(129)當前元素,即WorkReport 141至樹103中文檔140下方。因為遞歸?,F(xiàn)在為空131,因此該過程結束132,且該樹如圖4b中完成,并對應于圖1的樹視圖。以上示例是插入元素的短鏈,同樣的過程當然可應用于較長的元素鏈。
示例性計算和網絡環(huán)境參考圖5,示出了表示適于結合本發(fā)明的各方面使用的示例性計算設備的框圖。例如,實現(xiàn)用于提供帶有自動搜索菜單用戶界面的過程和方法的計算機可執(zhí)行指令可以駐留和/或運行在如圖5中所示的這樣一個計算環(huán)境中。計算系統(tǒng)環(huán)境220僅是合適的計算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應該把計算環(huán)境220解釋為對示例性操作環(huán)境220中示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可用眾多其它通用或專用計算系統(tǒng)環(huán)境或配置來操作。適合在本發(fā)明中使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計算機、服務器計算機、手持或膝上型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電子產品、網絡PC、小型機、大型機、包含上述系統(tǒng)或設備中的任一個的分布式計算機環(huán)境等。
本發(fā)明可在諸如由計算機執(zhí)行的程序模塊等的計算機可執(zhí)行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據結構等,它們執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據類型。本發(fā)明也可以在分布式計算環(huán)境中實現(xiàn),其中任務由通過通信網絡連接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備在內的本地和遠程計算機存儲介質中。
用于實現(xiàn)本發(fā)明各方面的示例性系統(tǒng)包括計算機241形式的通用計算設備。計算機241的組件可以包括,但不限于,處理單元259、系統(tǒng)存儲器222和將包括系統(tǒng)存儲器在內的各種系統(tǒng)組件耦合至處理單元259的系統(tǒng)總線221。系統(tǒng)總線221可以是若干類型的總線結構中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結構中的任一種的局部總線。作為示例,而非限制,這樣的體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、擴展的ISA(EISA)總線、視頻電子技術標準協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計算機241通常包括各種計算機可讀介質。計算機可讀介質可以是能夠被計算機241訪問的任何可用介質,且包括易失性和非易失性介質、可移動和不可移動介質。作為示例,而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以任何方法或技術實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據結構、程序模塊或其它數(shù)據等信息的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機241訪問的任何其它介質。通信介質通常具體化為諸如載波或其它傳輸機制等已調制數(shù)據信號中的計算機可讀指令、數(shù)據結構、程序模塊或其它數(shù)據,且包含任何信息傳遞介質。術語“已調制數(shù)據信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設定或更改。作為示例,而非限制,通信介質包括有線介質,諸如有線網絡或直接線連接,以及無線介質,諸如聲學、RF、紅外線和其它無線介質。上述中任一組合也應包括在計算機可讀介質的范圍之內。
系統(tǒng)存儲器222包括易失性或非易失性存儲器形式的計算機存儲介質,諸如只讀存儲器(ROM)223和隨機存取存儲器(RAM)260。基本輸入/輸出系統(tǒng)224(BIOS)包含有助于諸如啟動時在計算機241中元件之間傳遞信息的基本例程,它通常存儲在ROM 223中。RAM 260通常包含處理單元259可以立即訪問和/或目前正在操作的數(shù)據和/或程序模塊。作為示例,而非限制,圖5示出了操作系統(tǒng)225、應用程序226、其它程序模塊227和程序數(shù)據228。
計算機241也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介質。僅作為示例,圖5示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬盤驅動器238,從可移動、非易失性磁盤254中讀取或向其寫入的磁盤驅動器239,以及從諸如CD ROM或其它光學介質等可移動、非易失性光盤253中讀取或向其寫入的光盤驅動器240??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅動器238通常由不可移動存儲器接口,諸如接口234連接至系統(tǒng)總線221,磁盤驅動器239和光盤驅動器240通常由可移動存儲器接口,諸如接口235連接至系統(tǒng)總線221。
以上描述和在圖5中示出的驅動器及其相關聯(lián)的計算機存儲介質為計算機241提供了對計算機可讀指令、數(shù)據結構、程序模塊和其它數(shù)據的存儲。例如,在圖5中,硬盤驅動器238被示為存儲操作系統(tǒng)258、應用程序257、其它程序模塊256和程序數(shù)據255。注意,這些組件可以與操作系統(tǒng)225、應用程序226、其它程序模塊227和程序數(shù)據228相同或不同。操作系統(tǒng)258、應用程序257、其它程序模塊256和程序數(shù)據255在這里被標注了不同的標號是為了說明至少它們是不同的副本。用戶可以通過輸入設備,諸如鍵盤251和定點設備252(通常指鼠標、跟蹤球或觸摸墊)向計算機241輸入命令和信息。其它輸入設備(未示出)可以包括麥克風、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設備通常由耦合至系統(tǒng)總線的用戶輸入接口236連接至處理單元259,但也可以由其它接口或總線結構,諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器242或其它類型的顯示設備也經由接口,諸如視頻接口232連接至系統(tǒng)總線221。除監(jiān)視器以外,計算機也可以包括其它外圍輸出設備,諸如揚聲器244和打印機243,它們可以通過輸出外圍接口233連接。
計算機241可使用至一個或多個遠程計算機,諸如遠程計算機246的邏輯連接在網絡化環(huán)境中操作。遠程計算機246可以是個人計算機、服務器、路由器、網絡PC、對等設備或其它常見網絡節(jié)點,且通常包括上文相對于計算機241描述的許多或所有元件,盡管在圖5中只示出存儲器存儲設備247。圖5中所示邏輯連接包括局域網(LAN)245和廣域網(WAN)249,但也可以包括其它網絡。這樣的網絡環(huán)境在辦公室、企業(yè)范圍計算機網絡、內聯(lián)網和因特網中是常見的。
當在LAN網絡環(huán)境中使用時,計算機241通過網絡接口或適配器237連接至LAN 245。當在WAN網絡環(huán)境中使用時,計算機241通常包括調制解調器250或用于通過諸如因特網等WAN 249建立通信的其它裝置。調制解調器250可以是內置或外置的,它可以通過用戶輸入接口236或其它合適的機制連接至系統(tǒng)總線221。在網絡化環(huán)境中,相對于計算機241所描述的程序模塊或其部分可以存儲在遠程存儲器存儲設備中。作為示例,而非限制,圖5示出了遠程應用程序248駐留在存儲器設備247上。可以理解,所示的網絡連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
應該理解,此處描述的各種技術可以結合硬件或軟件或兩者的適當組合來實現(xiàn)。這樣,本發(fā)明的方法和裝置或其某些方面或部分,可以采用包含在有形介質中的程序代碼(即,指令)的形式,有形介質諸如軟盤、CD-ROM、硬盤或任何其它機器可讀存儲介質,其中,當程序代碼被加載至諸如計算機等機器并由其運行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。在程序代碼在可編程計算機上運行的情形中,計算設備一般包括處理器、該處理器可讀的存儲介質(包括易失性和非易失性的存儲器和/或存儲元件)、至少一個輸入設備以及至少一個輸出設備。一個或多個程序可以例如,通過使用API、可重用控件等實現(xiàn)或利用結合本發(fā)明描述的過程。這樣的程序較佳地用高級過程語言或面向對象編程語言來實現(xiàn),以與計算機系統(tǒng)通信。然而,如果需要,可以用匯編語言或機器語言來實現(xiàn)程序。在任何情形中,語言可以是編譯的或解釋的語言,且與硬件實現(xiàn)相結合。
盡管示例性實施例涉及在一個或多個獨立計算機系統(tǒng)的環(huán)境中利用本發(fā)明的各方面,但本發(fā)明不受此限制,而是可以結合任何計算環(huán)境,諸如網絡或分布式計算環(huán)境來實現(xiàn)。而且,本發(fā)明的各方面可以在多個處理芯片或設備中實現(xiàn)或跨多個處理芯片或設備實現(xiàn),且存儲可以類似地跨多個設備來實現(xiàn)。這樣的設備可以包括,個人計算機、網絡計算機、手持式設備、超級計算機或集成至諸如汽車和飛機等其它系統(tǒng)的計算機。
在圖6中提供了示例性的網絡化計算環(huán)境。本領域的普通技術人員可以理解,網絡可以連接任何計算機或其它客戶機或服務器設備,或處于分布式計算環(huán)境中。就此,含有任何數(shù)量的處理、存儲器或存儲單元,以及同時發(fā)生的任何數(shù)量的應用程序和進程的任何計算機系統(tǒng)或環(huán)境被認為適用于本發(fā)明所提供的系統(tǒng)和方法。
分布式計算通過計算設備和系統(tǒng)之間的交換提供了計算機資源和服務的共享。這些資源和服務包括信息的交換、文件的高速緩存存儲和磁盤存儲。分布式計算利用網絡連接,允許客戶機利用它們的集體力量來使整個企業(yè)受益。就此,各種設備可以含有可以包含此處所描述的過程的應用程序、對象或資源。
圖6提供了示例性的網絡化或分布式計算環(huán)境的示意圖。環(huán)境包括計算設備271、272、276和277,以及對象273、274和275,還有數(shù)據庫278。這些實體271、272、273、274、275、276、277和278中的每一個可以包括或使用程序、方法、數(shù)據存儲、可編程邏輯等。實體271、272、273、274、275、276、277和278可以跨諸如PDA、音頻/視頻設備、MP3播放器、個人計算機等的相同或不同設備的各部分。每一實體271、272、273、274、275、276、277和278可以經由通信網絡270與另一實體271、272、273、274、275、276、277和278通信。就此,任何實體可以負責維護和更新數(shù)據庫278或其它存儲元件。
網絡270本身可以包括向圖6的系統(tǒng)提供服務的其它計算實體,且其本身可以表示多個互連的網絡。根據本發(fā)明的一方面,每一實體271、272、273、274、275、276、277和278可以包括可使用API或其它對象、軟件、固件和/或硬件來請求其它實體271、272、273、274、275、276、277和278中的一個或多個的服務的離散的功能性程序模塊。
也可以理解,諸如275等對象可以主存于另一計算設備276上。這樣,盡管所示的物理環(huán)境可以將所連接的設備示為計算機,但是這樣的說明僅是示例性的,該物理環(huán)境可以被替換地描述或描繪成含有諸如PDA、電視機、MP3播放器等的各種數(shù)字設備,以及諸如接口、COM對象等軟件對象。
存在支持分布式計算環(huán)境的各種系統(tǒng)、組件和網絡配置。例如,計算系統(tǒng)可以由有線或無線系統(tǒng)、本地網絡或廣泛分布的網絡連接在一起。目前,多個網絡被耦合至因特網,因特網為廣泛分布的計算提供基礎架構并包含多個不同的網絡。無論是否被耦合至因特網,任何這樣的基礎架構可以用于本發(fā)明所提供的系統(tǒng)和方法。
網絡基礎架構可以允許諸如客戶機/服務器、對等或混合體系結構等各種網絡拓撲結構?!翱蛻魴C”是使用它無關的另一類或組的服務的一個類或組中的成員。在計算中,客戶機是進程,即大致上是請求由另一程序提供的服務的一組指令或任務??蛻魴C進程利用所請求的服務,而不必“知道”關于其它程序或服務本身的任何工作細節(jié)。在客戶機/服務器體系結構中,尤其在網絡化系統(tǒng)中,客戶機通常是訪問由例如服務器等另一計算機提供的共享的網絡資源的計算機。在圖6的示例中,取決于環(huán)境,任何實體271、272、273、274、275、276、277和278可以被認為是客戶機、服務器或兩者。
服務器通常,但不必須是可通過諸如因特網等遠程或本地網絡訪問的遠程計算機系統(tǒng)??蛻魴C進程可以在第一計算機系統(tǒng)中活動,而服務器進程可以在第二計算機系統(tǒng)中活動,它們通過通信介質彼此通信,從而提供分布式功能并允許多個客戶機利用服務器的信息收集能力。任何軟件對象可以跨多個計算設備或對象分布。
客戶機和服務器利用由協(xié)議層提供的功能來彼此通信。例如,超文本傳輸協(xié)議(HTTP)是用于萬維網(WWW)或“Web”的常見協(xié)議。通常,諸如網際協(xié)議(IP)地址或諸如統(tǒng)一資源定位器(URL)等其它引用的計算機網絡地址可以用于彼此標識服務器或客戶計算機。網絡地址可以被稱為URL地址??梢酝ㄟ^通信介質來提供通信,例如客戶機和服務器可以通過用于大容量通信的TCP/IP連接來彼此耦合。
考慮到可以根據圖5中提供的通用架構構建的各種計算環(huán)境,以及在諸如圖6的網絡環(huán)境中的計算中可能發(fā)生的變化,此處提供的系統(tǒng)和方法不能被解釋為以任何方式限于特定的計算體系結構。而是,本發(fā)明不應限于任何單個實施例,而是應該根據所附權利要求書的寬度和范圍來解釋。
結論此處描述的各種系統(tǒng)、方法和技術可以使用硬件或軟件或兩者的恰當組合來實現(xiàn)。這樣,本發(fā)明的方法和設備,或其某些方面或部分,可以采包含在有形介質中的程序代碼(即,指令)的形式,有形介質諸如軟盤、CD-ROM、硬盤或任何其它機器可讀存儲介質,其中,當程序代碼被加載至諸如計算機等的機器并由其運行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。在程序代碼在可編程計算機上運行的情形中,計算機一般包括處理器、處理器可讀的存儲介質(包括易失性和非易失性的存儲器和/或存儲元件)、至少一個輸入設備以及至少一個輸出設備。這樣的程序較佳地用高級過程語言或面向對象的編程語言來實現(xiàn),以與計算機系統(tǒng)通信。然而,如果需要,可以用匯編語言或機器語言來實現(xiàn)程序。在任何情形中,語言可以是編譯的或解釋的語言,且與硬件實現(xiàn)相結合。
本發(fā)明的方法和裝置也可以具體化為通過諸如電線或電纜、光纖或任何其它形式的傳輸?shù)饶承﹤鬏斀橘|傳輸?shù)某绦虼a形式,其中,當程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶計算機、錄影機等機器接收、加載并運行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。當在通用處理器上實現(xiàn)時,程序模塊結合處理器來提供用于執(zhí)行本發(fā)明的索引功能的獨特裝置。
盡管結合各附圖的較佳實施例描述了本發(fā)明,但是可以理解,可以使用其它類似的實施例,或可以對所述實施例進行修改或添加,來用于實現(xiàn)本發(fā)明的相同的功能而不背離本發(fā)明。例如,盡管在模擬個人計算機功能的數(shù)字設備的環(huán)境中描述本發(fā)明的示例性實施例,但是本領域的技術人員可以認識到,本發(fā)明不限于這樣的數(shù)字設備,如在本申請中所述,本發(fā)明可以應用于任何數(shù)量的現(xiàn)有或新興計算設備或環(huán)境,諸如游戲控制臺、手持式計算機、便攜式計算機等,無論它們是有線還是無線的,且可以被應用于通過通信網絡連接并跨該網絡交互的任何數(shù)量的這樣的計算設備。而且,應該強調,此處構想了各種計算機平臺,包括手持式設備操作系統(tǒng)和其它應用程序專用硬件/軟件接口設備,尤其是當無線網絡化設備的數(shù)量持續(xù)增長的時候。從而,本發(fā)明不應該限于任何單個實施例,而應根據所附權利要求書的寬度和范圍解釋。
最后,此處所述的所揭示的實施例可以適于在其它處理器體系結構、基于計算機的系統(tǒng)或系統(tǒng)虛擬化中使用,且此處進行的揭示明確地預期這樣的實施例,從而,本發(fā)明不應限于此處描述的特定實施例,而可以被最廣泛地解釋。同樣,用于除處理器虛擬化之外的目的的合成指令的使用也可以由此處進行的揭示所預期,且在除了處理器虛擬化之外的環(huán)境中,任何這樣的合成指令的使用可以最廣泛地對此處進行的揭示添加另外的意義。
權利要求
1.一種用于提供菜單項的分層視圖的方法,包括基于輸入的搜索準則來搜索分層結構;以及僅顯示所述分層結構的一部分,所述部分是當匹配所述搜索準則的菜單項存在于所述分層結構中時僅顯示那些菜單項所必須的。
2.如權利要求1所述的方法,其特征在于,所述搜索動作包括用戶輸入至少一個字符;幾乎立即基于所述輸入的至少一個字符搜索所述分層結構。
3.如權利要求2所述的方法,其特征在于,還包括當用戶鍵入額外的字符時,基于所述額外的字符繼續(xù)重復所述搜索和顯示動作。
4.如權利要求2所述的方法,其特征在于,用戶在要顯示的所述分層結構上方的編輯框中輸入所述至少一個字符。
5.如權利要求2所述的方法,其特征在于,還包括當用戶鍵入至少一個字符時,在開始搜索之前自動等待大致一秒鐘。
6.如權利要求1所述的方法,其特征在于,所述菜單項為命令。
7.如權利要求1所述的方法,其特征在于,還包括使用計算機的輸入設備來選擇所顯示的菜單項中的一個。
8.一種其上存儲用于執(zhí)行提供菜單項的分層視圖的方法的指令的計算機可讀介質,所述方法包括基于輸入的搜索準則來搜索分層結構;以及僅顯示所述分層結構的一部分,所述部分是當匹配所述搜索準則的菜單項存在于所述分層結構中時僅顯示那些菜單項所必須的。
9.如權利要求8所述的計算機可讀介質,其特征在于,所述搜索動作包括用戶輸入至少一個字符;幾乎立即基于所述輸入的至少一個字符搜索所述分層結構。
10.如權利要求9所述的計算機可讀介質,其特征在于,還包括在其上存儲的指令,用于當用戶鍵入額外的字符時,基于所述額外的字符繼續(xù)重復所述搜索和顯示動作。
11.如權利要求9所述的計算機可讀介質,其特征在于,用戶在要顯示的所述分層結構上方的編輯框中輸入所述至少一個字符。
12.如權利要求9所述的計算機可讀介質,其特征在于,還包括在其上存儲的指令,用于當用戶鍵入至少一個字符時,在開始搜索之前自動等待大致一秒鐘。
13.如權利要求8所述的計算機可讀介質,其特征在于,所述菜單項為命令。
14.如權利要求8所述的計算機可讀介質,其特征在于,還包括在其上存儲的指令,用于使用計算機的輸入設備來選擇所顯示的菜單項中的一個。
15.一種用于提供菜單項的分層視圖的系統(tǒng),包括用于基于輸入的搜索準則來搜索分層結構的裝置;以及與所述搜索裝置可操作地通信的、用于僅顯示所述分層結構的一部分的裝置,所述部分是當匹配所述搜索準則的菜單項存在于所述分層結構中時僅顯示那些菜單項所必須的。
16.如權利要求1所述的系統(tǒng),其特征在于,所述搜索動作包括用于用戶輸入至少一個字符的裝置;與所述輸入裝置可操作地通信的、用于幾乎立即基于所述輸入的至少一個字符搜索所述分層結構的裝置。
17.如權利要求2所述的系統(tǒng),其特征在于,還包括與所述輸入裝置可操作地通信的、用于當用戶鍵入額外的字符時基于所述額外的字符繼續(xù)重復所述搜索和顯示動作的裝置。
18.如權利要求2所述的系統(tǒng),其特征在于,還包括用于用戶在要顯示的所述分層結構上方的編輯框中輸入所述至少一個字符的裝置。
19.如權利要求2所述的系統(tǒng),其特征在于,還包括與所述輸入裝置可操作地通信的、用于當用戶鍵入至少一個字符時,在開始搜索之前自動等待大致一秒鐘的裝置。
20.如權利要求1所述的系統(tǒng),其特征在于,所述菜單項為命令。
全文摘要
為帶有自動搜索菜單的用戶界面提供了系統(tǒng)和方法。該界面向用戶展示作為即時可搜索分層結構的命令。實質上,這被表現(xiàn)為其上帶有編輯框的樹視圖。不存在要按下的“搜索”或“前進”按鈕。在編輯框中輸入任何字符一秒鐘之后,計算機將所顯示的層次結構減少為僅那些匹配所輸入的關鍵字的項。在一秒鐘期限之前輸入另一字符將復位定時器。這允許用戶按所需或多少地鍵入關鍵字來將分層結構減少至少量項,然后可以鼠標點擊其中一項。該方法可縮放至大量命令。
文檔編號G06F3/048GK1811767SQ20051013815
公開日2006年8月2日 申請日期2005年12月27日 優(yōu)先權日2005年1月27日
發(fā)明者S·伊萬諾夫 申請人:微軟公司