專利名稱:自動生成內容的導入的制作方法
背景技術:
本發明涉及生成內容,諸如幫助內容。更具體地,本發明涉及對指示用戶在用戶界面上的動作自動生成的內容的導入。
圖形用戶界面(GUI)是廣泛使用的界面機制。GUI適于定位任務(例如,對矩形調整大小)、視覺修改工具任務(例如,對某物加上難以名狀的藍色陰影)或選擇任務(例如,這是一百個圖片中我想要旋轉的一個)。GUI也適于對快速單步特征的迅速訪問。應用程序的GUI是從功能角度(例如,組織成菜單、工具欄等)而非面向任務角度(例如,由用戶想要進行的高級任務組織的,諸如“使我的計算機免受黑客威脅”)組織的有用的工具箱。
然而,GUI也對用戶提出了眾多問題。使用工具箱類似物,用戶難以在箱中找到工具或了解如何使用工具來完成由多個步驟組成的任務。由強制表現為不透明層次的單個詞語、小按鈕和標簽描述的界面使其自身不適用于人們思考他們的任務的方式。GUI要求用戶分解任務以便確定什么元素是完成任務所必需的。這種要求產生了復雜性。除復雜性以外,組裝GUI元素(即,菜單點擊、對話點擊等)是花費時間的。這即使對專家用戶而言也是低效且消耗時間的。
解決GUI問題的一個現有機制是書面的幫助程式。幫助程式通常采用幫助文檔、PSS(產品支持服務)KB(知識庫)文章、和新聞組公告的形式,這填補了顧客需求與GUI問題之間的缺口。它們類似于與工具箱一起提供的手冊,并具有許多好處。這些好處包括,作為示例1)技術上而言,即使對非技術作者,它們也相對易于創作;2)它們易于在服務器上更新,因此連接的用戶能夠輕易訪問新的內容;以及3)它們指示GUI,從而使用戶能夠控制解決問題。
然而,幫助文檔、PSS KB文章和新聞組有它們自己的問題。這些問題包括,作為示例1)復雜任務需要在用戶一方上進行大量處理。用戶需要進行從每一步驟的描述到GUI的映射。在被跳過、被不正確或不充分描述或被亂序描述了的步驟處可導致錯誤。
2)故障診斷程序甚至程式性幫助文檔通常也包括在幫助主題下產生復雜分支的狀態信息,使得主題過長而難以由最終用戶閱讀和處理。工具欄可能遺失,或可能在采取下一步驟之前需要被開啟。故障診斷程序通常詢問關于狀態的問題,這從最好的角度而言也是令人灰心的(因為,故障診斷程序應能夠自己找出答案),從最壞的角度而言則對非專家而言是不能回答的。
3)存在成百萬的文檔,搜索答案涉及從哪里開始搜索以及如何從返回的數千結果中挑選最佳搜索結果的問題。
4)不存在共享的創作結構。新聞組公告、KB文章、故障診斷程序和程式性幫助文檔皆具有不同的結構和創作策略,然而它們都解決類似的問題。
5)對用戶而言,僅是難以閱讀逐步的文本,然后視覺上在UI中搜索正被描述的元素并對該元素采取所描述的動作。
解決GUI問題的另一現有機制是向導。創建向導來解決GUI和書面的幫助程式的弱點。現在存在數千向導,可在所制造的幾乎每個軟件產品中找到這些向導。這是因為向導解決了目前現有的基于文本的幫助和協助未能解決的實際需求。它們允許用戶以面向任務的方式訪問功能,并可自動組裝GUI或工具。向導向項目主管(program manager)和開發員提供了解決顧客任務的手段。這類似于一工具箱中的專家,引導用戶逐步通過為任務成功而必需的步驟。某些向導幫助顧客安裝系統(例如,安裝向導),某些向導包括具有特征的內容,并幫助顧客創建內容(例如,Newsletter向導或PowerPoint的AutoContent向導),某些向導幫助顧客診斷并解決問題(例如,故障診斷程序)。
向導向用戶提供眾多好處。向導的好處中的某些在于1)向導能夠實體化“任務”的概念。用戶通常清楚向導在幫助他們完成什么任務。使用逐步的頁面,用戶易于作出選擇,并且在良好設計的向導的情況中,通常減少了用戶在視覺上被淹沒的發生率。
2)向導可自動組裝并與軟件的底層特征交互,且包括顧客作出選擇所需的信息或專家意見。這節省了用戶執行任務的時間。
3)向導可自動生成內容,并可通過創建文本和規劃布局來節省用戶時間。
4)向導也是用于詢問問題、獲得回答并分支到最相關的下一問題或特征的良好手段。
然而,向導也有它們自身的問題。這些問題中的某些包括,人們試圖完成的任務遠多于用于完成這些任務的向導。向導和IUI(引導性用戶界面)不教導用戶如何使用底層GUI,且通常當向導完成時,用戶不確定下一步做什么。創作向導的成本仍舊高,且要求具有技術專業知識的人員(例如,軟件開發員)來創作向導。
此外,所有這些類型的內容還遭受另一問題。執行任何給定任務所必須采取的步驟可能基于其上執行該任務的計算機的配置而改變。例如,取決于用戶計算機的操作系統,改變計算機上的背景顯示(即“壁紙”)可能要求用戶執行不同的步驟。事實上,如果操作系統的版本號不同,所需步驟也甚至可能不同。類似地,取決于計算機的網絡配置(例如,取決于計算機位于一網絡域還是一工作組上),步驟可能不同。這要求用戶在書面內容中創作相當復雜的分支邏輯。同樣,用戶可能覺得導航通過一復雜的分支幫助文本來執行必要步驟是麻煩。
因此,創作描述將由用戶采取的過程的所有這些類型的內容通常易于產生錯誤。很容易就遺失步驟、不正確地描述步驟、或在UI操縱的長序列中丟失對當前正描述什么步驟的跟蹤。然而,這種書面程式性幫助內容非常常見。這樣的幫助內容通常與產品一起裝運,為產品支持組提供在線幫助內容,且公司內的程式通常以這樣的方式進行文檔編寫以用于專用商業過程。因此,這種類型的信息是難以創作且通常包含錯誤的。
此外,最終用戶一般遵循已創作的步驟。難以閱讀逐步的文本,然后在UI中搜索正被描述的特定控件元素,然后針對該控件元素采取適當的措施。發現眾多用戶發覺這是相當的負擔,他們僅掃視文本的前一兩個步驟,然后盡力確定下一步需要啟動哪個UI元素,很少回頭參考書面的文本步驟。也發現,相對于閱讀單詞并在心里將單詞轉換成圖片然后找到相應的UI控件元素而言,眼睛能更容易地找到和識別圖片。然而,在過去,正是進行了如下步驟,創作者必須煞費苦心地獲得每一步驟的屏幕截圖、裁剪圖像然后將它們粘貼到文檔中的適當位置中,以便擁有對要采取的措施的任何類型的視覺描述。
發明概述本發明的一個實施例通過提供一種內容組件解決了向導、幫助、知識庫文章和故障診斷程序的問題中的某些,該內容組件提供了簡單的方式來創作數千任務(或向導)的,并且或與GUI集成并教導用戶如何使用GUI來執行任務,或代表用戶來執行任務。在一個特定實施例中,本發明涉及創作活動內容向導(ACW)腳本,以及作為ACW腳本的一部分的文本和圖像。
本發明針對用于自動記錄指示創作者在完成用戶界面上執行的整體任務的各步驟時的動作的信息的系統。記錄系統被用于記錄為在具有不同配置的不同計算機上執行任務所采取的步驟。所記錄的步驟然后被導入創作組件,在那里所記錄的步驟被編排成期望的內容。
在一個實施例中,記錄系統記錄對應于創作者在用戶界面上的動作的圖像。記錄系統然后可將所記錄的圖像傳遞給創作組件,在那里創作者可生成對應于該圖像的文本以描述這些動作。如有需要,圖像也可被嵌入在文本中來發布。
在一個實施例中,記錄系統包括自動生成對應于圖像的文本的文本生成器。這種文本然后可用于形成文本文檔,它向用戶提供指令或其它信息。在生成文本文檔的過程期間或之后,文本可使用編輯器來編輯以增強文檔的可理解性。
附圖簡述
圖1是可在其中使用本發明的一個示例性環境的框圖。
圖2是示出根據本發明的一個實施例的記錄系統的組件的框圖。
圖3是示出圖2中所示的系統在記錄和生成與用戶動作相關的文本時的操作的流程圖。
圖4是描繪記錄系統的控件的一個實施例的屏幕截圖。
圖5是示出可用于生成文本的示例性顯示的屏幕截圖。
圖6是示出根據本發明的一個實施例的高亮特征的屏幕截圖。
圖7是更詳細示出自動文本生成的一個實施例的流程圖。
圖8是示出向創作者呈現所生成的文本以便編輯的一種方式的屏幕截圖。
圖9是更好地示出了其中圖像可用于創作內容的一個實施例的屏幕截圖。
圖10示出了根據本發明的一個實施例的帶有嵌入圖像的最終文本的一個實施例。
圖11是用于對在具有不同配置的系統上執行任務的用戶界面步驟進行紀錄的系統的一個實施例的框圖。
示例性實施例的詳細描述本發明涉及對指示用戶在用戶界面上的動作的內容的自動記錄。在詳細描述本發明的之前,將討論可在其中使用本發明的一個示例性環境。
圖1示出了可在其上實現本發明的合適的計算系統環境100的示例。計算系統環境100只是合適的計算環境的一個示例,并不旨在對本發明的使用范圍或功能提出任何限制。也不應該把計算環境100解釋為對示例性操作環境100中示出的任一組件或其組合有任何依賴性或要求。
本發明可用眾多其它通用或專用計算系統環境或配置來操作。適合在本發明中使用的公知的計算系統、環境和/或配置的示例包括,但不限于,個人計算機、服務器計算機、手持或膝上型設備、多處理器系統、基于微處理器的系統、機頂盒、可編程消費者電子產品、網絡PC、小型機、大型機、包含上述系統或設備中的任一個的分布式計算機環境等。
本發明可在由計算機執行的諸如程序模塊等的計算機可執行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數據結構等,它們執行特定任務或實現特定抽象數據類型。本發明也可以在分布式計算環境中實現,其中任務由通過通信網絡連接的遠程處理設備執行。在分布式計算環境中,程序模塊可以位于包括存儲器存儲設備在內的本地和遠程計算機存儲介質中。
參考圖1,用于實現本發明的一個示例性系統包括計算機110形式的通用計算設備。計算機110的組件可以包括,但不限于,處理單元120、系統存儲器130和將包括系統存儲器在內的各種系統組件耦合至處理單元120的系統總線121。系統總線121可以是若干類型的總線結構中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結構中的任一種的局部總線。作為示例,而非限制,這樣的體系結構包括工業標準體系結構(ISA)總線、微通道體系結構(MCA)總線、擴展的ISA(EISA)總線、視頻電子技術標準協會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計算機110通常包括各種計算機可讀介質。計算機可讀介質可以是能夠被計算機110訪問的任何可用介質,且包括易失性和非易失性介質、可移動和不可移動介質。作為示例,而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質包括以任何方法或技術實現的用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機110訪問的任何其它介質。通信介質通常具體化為諸如載波或其它傳輸機制等已調制數據信號中的計算機可讀指令、數據結構、程序模塊或其它數據,且包含任何信息傳遞介質。術語“已調制數據信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設定或更改。作為示例,而非限制,通信介質包括有線介質,諸如有線網絡或直接線連接,以及無線介質,諸如聲學、RF、紅外線和其它無線介質。上述中任一個的組合也應包括在計算機可讀介質的范圍之內。
系統存儲器130包括易失性和/或非易失性存儲器形式的計算機存儲介質,諸如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132。基本輸入/輸出系統133(BIOS)包含有助于諸如啟動時在計算機110中元件之間傳遞信息的基本例程,它通常存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/或目前正在操作的數據和/或程序模塊。作為示例,而非限制,圖1示出了操作系統134、應用程序135、其它程序模塊136和程序數據137。
計算機110也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介質。僅作為示例,圖1示出了從不可移動、非易失性磁介質中讀取或向其寫入的硬盤驅動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅動器151,以及從諸如CD ROM或其它光學介質等可移動、非易失性光盤156中讀取或向其寫入的光盤驅動器155。可以在示例性操作環境下使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質包括,但不限于,盒式磁帶、閃存卡、數字多功能盤、數字錄像帶、固態RAM、固態ROM等。硬盤驅動器141通常由不可移動存儲器接口,諸如接口140連接至系統總線121,磁盤驅動器151和光盤驅動器155通常由可移動存儲器接口,諸如接口150連接至系統總線121。
以上描述和在圖1中示出的驅動器及其相關聯的計算機存儲介質為計算機110提供了對計算機可讀指令、數據結構、程序模塊和其它數據的存儲。例如,在圖1中,硬盤驅動器141被示為存儲操作系統144、應用程序145、其它程序模塊146和程序數據147。注意,這些組件可以與操作系統134、應用程序135、其它程序模塊136和程序數據137相同或不同。操作系統144、應用程序145、其它程序模塊146和程序數據147在這里被標注了不同的標號是為了說明至少它們是不同的副本。
用戶可以通過輸入設備,諸如鍵盤162、麥克風163和諸如鼠標、跟蹤球或觸摸墊的定點設備161向計算機110輸入命令和信息。其它輸入設備(未示出)可以包括操縱桿、游戲墊、圓盤式衛星天線、掃描儀等。這些和其它輸入設備通常由耦合至系統總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結構,諸如并行端口、游戲端口或通用串行總線(USB)連接。監視器191或其它類型的顯示設備也經由接口,諸如視頻接口190連接至系統總線121。除監視器以外,計算機也可以包括其它外圍輸出設備,諸如揚聲器197和打印機196,它們可以通過輸出外圍接口195連接。
計算機110可使用至一個或多個遠程計算機,諸如遠程計算機180的邏輯連接在網絡化環境下操作。遠程計算機180可以是個人計算機、手持式設備、服務器、路由器、網絡PC、對等設備或其它常見網絡節點,且通常包括上文相對于計算機110描述的許多或所有元件。圖1中所示邏輯連接包括局域網(LAN)171和廣域網(WAN)173,但也可以包括其它網絡。這樣的網絡環境在辦公室、企業范圍計算機網絡、內聯網和因特網中是常見的。
當在LAN連網環境中使用時,計算機110通過網絡接口或適配器170連接至局域網171。當在WAN連網環境中使用時,計算機110通常包括調制解調器172或用于通過諸如因特網等WAN 173建立通信的其它裝置。調制解調器172可以是內置或外置的,它可以通過用戶輸入接口160或其它合適的機制連接至系統總線121。在網絡化環境中,相對于計算機110所描述的程序模塊或其部分可以存儲在遠程存儲器存儲設備中。作為示例,而非限制,圖1示出了遠程應用程序185駐留在存儲器設備181上。可以理解,所示的網絡連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
圖2是示出根據本發明的一個實施例的記錄系統200的組件的框圖。圖2也示出了帶有記錄器207和自動文本生成器203的系統200。記錄器207包括記錄組件210、掛鉤組件212以及用戶界面(UI)自動化組件214。文本生成器203包括文本數據庫(或數據存儲)220以及文本生成組件230。系統200與用戶界面205交互。創作者可配置系統200的組件來自動記錄對應于在用戶界面205的控件上執行的動作的圖像,文本生成器203自動生成描述這些動作的文本235。創作者201也可在編輯器240上編輯自動生成的文本235或從草稿生成文本以獲取描述任務(或UI控件動作)的最終文本245。最終文本245也示例性地包括嵌入其中的圖像。現在將詳細描述圖2中的多個組件。
在一個實施例中,用戶界面205是具有允許用戶采取動作來執行任務的控件的常規圖形用戶界面。用戶界面205示例性地顯示在圖1中所示的顯示設備191上。這種類型的圖形用戶界面(GUI)是廣泛使用的界面機制。
記錄組件210在一個實施例中是允許創作者201或另一用戶在用戶界面205上執行任務并通過捕捉任務中每一步驟的圖像來記錄任務的應用程序。如將在以下更詳細描述的,當創作者201在用戶界面205上執行與任務相關聯的步驟時,記錄組件210記錄關于創作者在用戶界面205上與什么控件和窗口交互的信息。這種信息被示例性地提供給文本生成器230以自動在諸如幫助文檔的文檔中生成文本。
記錄組件210經由掛鉤組件212和用戶界面(UI)自動化組件214與用戶界面205交互。這些組件可與記錄組件210分開,或在某些實施例中,這些組件可與記錄組件210集成在一起。
在一個實施例中,掛鉤組件212是由計算機使用的操作系統內的模塊或組件。例如,當掛鉤被設定為鼠標點擊時,指示鼠標點擊的信息(諸如消息)被轉發給掛鉤組件212,在那里消費該信息,且當其相關聯的圖像由記錄組件210記錄之后,為注冊以接收鼠標點擊的計算機中的其它組件回放該信息。從而,一般,掛鉤組件212用作操作系統和目標應用程序之間的緩沖區。
掛鉤組件212可被配置成查找基本上任何輸入動作,諸如所接收的信號的類型,例如單擊、雙擊、右擊或左擊、鍵盤動作、觸敏屏輸入等。一旦表示動作的信息由記錄組件210記錄之后,表示鼠標點擊(或所記錄的任何動作)的信息就由掛鉤組件212向應用程序回放。對此的一個理由是,用戶可在記錄第一動作之前采取第二動作。第二動作可使用戶界面的狀態改變,并因此導致對第一動作的不正確記錄。通過消費第一鼠標消息并當一旦完成記錄之后對其回放,這確保了第一動作將被正確記錄。
也應注意,由掛鉤組件212執行的功能(即,監聽鼠標點擊并對其回放)被示例性地在分開的線程上執行。這確保了所有用戶界面動作(例如,鼠標點擊、鍵盤動作等)將沒有遺漏地被正確記錄并回放。此外,掛鉤組件212的記錄和回放機制可示例性地無視操作系統內隱含的任何超時特征。這可能是必須的,如果操作系統的超時周期過短而無法允許正確的記錄動作。
用戶界面自動化組件214示例性地是被配置成解釋由創作者或用戶通過用戶界面205執行的整體任務的原子步驟的計算機程序。在一個實施例中,用戶界面自動化組件214是使用華盛頓州雷德蒙市的微軟公司提供的微軟用戶界面自動化來實現的GUI自動化模塊。該模塊提供了一種程序化方式,以訪問關于可視用戶界面的信息并在程序上與可視用戶界面交互。然而,取決于系統設置,用戶界面自動化組件214可使用能夠程序上導航圖形用戶界面并檢測(和可任選地在程序上導航GUI來執行和運行)用戶界面上的命令的任何應用程序來實現。
用戶界面自動化組件214因此檢測與創作者201(或另一用戶)以任務順序在用戶界面205上執行的期望任務相關聯的步驟中的每一個。例如,如將在以下更詳細描述,當任務需要用戶在GUI上點擊按鈕以顯示新菜單或窗口時,用戶界面自動化組件214確定哪一控件位于用戶界面205上的鼠標光標的位置處及其大小和它的父窗口。記錄組件210使用來自掛鉤組件212的信息(例如,控件的類型、名字和狀態)來記錄被用于執行該步驟的控件的名字和屬性。該信息由用戶界面自動化組件214和掛鉤組件212向記錄組件210提供,使得記錄組件210可記錄由創作者用來執行該步驟的按鈕或控件的圖像。以下將參考圖3更詳細描述對圖像的獲取。
文本生成組件230是被配置成生成描述在記錄過程期間被運行或執行的動作的自然語言文本的程序或模塊。文本生成組件230使用所記錄的圖像和由記錄組件210記錄的其它信息來搜索數據庫220,并從文本數據庫220中選擇對應于所記錄步驟的正確的模板或條目。
文本數據庫220示例性地是可由文本生成器230搜索的數據庫或其它信息存儲系統。文本數據庫220包含與在用戶界面205上可使用的控件相關的信息。這種信息可包括例如,控件的名字、控件的類型、在控件上執行的動作、以及作為自然語言句子的動作的文字描述。
在某些實施例中,以多種語言提供對條目的文字描述。當以多種語言提供文字描述時,每一條目配備語言標識符,以允許正確的語言被選擇。
然而,取決于系統需求,可在文本數據庫220中提供其它信息。在一個實施例中,文本數據庫220中的某些條目含有與由順序執行的多個控件例示的兩個或多個動作相關的信息。當由文本數據庫220中的單個條目表示多個控件上的多個動作時,條目的文本包含作為單個句子的在兩個控件上執行的動作的自然語言描述。通過將兩個命令的描述組合成單個句子,改進了最終文本文檔的可讀性。
在一個實施例中,文本數據庫220以可擴展標記語言(XML)編寫。每一條目的數據可作為一連串子條目被存儲,其中條目的每一子條目指的是標識任務所需的單獨的信息片段。然而,可使用其它格式來存儲數據。
在一個實施例中,文本生成組件230當在文本數據庫220中搜索條目時查看所記錄的動作中的兩個或多個。這樣做是為了提供更流暢的文本文檔。例如,良好的程式性文檔一般將多于一個的步驟組成單個句子,以增強可讀性。如果文本生成組件230標識了文本數據庫220中與所記錄的信息相匹配的兩個或多個條目時,則文本生成組件230可使用任何已知方法來確定要選擇數據庫中的哪個條目,諸如通過基于對每一條目記分并選擇具有最高分的條目來去除條目的歧義。
根據一個實施例,基于用戶界面上所啟動的控件的類型和所執行的動作,文本生成組件230在文本數據庫220中搜索匹配所執行的控件類型和動作的條目。一旦在文本數據庫220中標識了匹配之后,文本生成組件230從文本數據庫220中獲取對動作的相關聯的自然語言描述,并將其作為句子指令而放置于所生成的文本文檔235中。在替換實施例中,文本生成組件220也可基于由UI自動化模塊214提供的信息生成文本文檔的可執行版本。
當從文本數據庫235中選擇文字描述時,文本生成組件也可察看控件的狀態。這當控件是復選框或者是可展開或折疊的樹時是重要的。在這種情況下,僅在框上點擊可能不適于描述該動作,因為無論期望的結果如何,控件上的動作都是相同的。因此,在這些情況中,控件的新狀態將影響所選擇的文本。例如,如果控件是復選框,且它要被取消選定,則所匹配的文本將基于控件的新狀態加上控件的名字。
文本編輯器240是被配置成對自動生成的文本235進行更正、改變或添加信息或文本的編輯器。取決于由文本生成器230生成的結果文本,以及創作者執行的動作,可能有必要編輯文本以進一步增強其可理解性。從而,文本編輯器240接收所生成的文本235,并允許創作者201編輯所生成的文本。
例如,由于語法上的必要性或因為所記錄的步驟之一要求一用戶動作而系統在記錄該步驟時沒有要求對用戶動作的描述,就需要文本編輯。在這樣的情況中(當需要用戶輸入時),根據一個實施例,在執行將被記錄的動作的同時,文本生成器235僅在文本中提供空格,以便創作者提供關于用戶在此步驟中應做的動作的指令/描述。
例如,假定正由用戶執行并由記錄組件記錄的任務是改變鋪在計算機屏幕上的背景。這要求用戶為背景選擇圖案。從而,由文本數據庫返回的用于改變背景的所記錄的用戶動作的文本可以是“請選擇[插入動作的描述]”,其中創作者將編輯文本成“請從列表中選擇所需的背景”。同樣在編輯階段期間,如果在記錄任務之前未提供對整個任務的描述,則創作者201可提供對此的描述。一旦文本被編輯之后,最終文本245從創作工具200中輸出,并以允許最終文本當用戶期望時可被檢取的適當的存儲模式來存儲。
圖3是根據本發明的一個實施例,更詳細地示出系統200如何操作的流程圖。首先,創作者201啟用記錄組件210。這由圖3中的框400指示。為此,創作者201僅啟動諸如圖4中所示的控件402的控件。Record(記錄)按鈕410可由創作者201啟動以開始記錄。啟動Stop(停止)按鈕406以停止記錄。如將在以下描述,創作者201可在文本編輯期間將對用戶動作的描述插入到文本編輯器240中。為此,用戶啟動按鈕408。類似地,如以下描述的,創作者201可編輯自動生成的文本。這可通過啟動圖4中的Text(文本)按鈕410來完成。或者,在某些實施例中,可提供附加的按鈕來允許用戶設置一值。這是為了允許當例如在運行時用戶被要求將文本鍵入編輯框中的情況中生成正確的文本。當然,也可使用其它或不同的控件。
再次參考圖3,一旦創作者201啟用記錄組件210,系統僅等待用戶在用戶界面205上采取動作。注意到,圖2示出了該用戶是創作者201,但用戶也可以是不同的用戶。
一旦用戶在用戶界面205上采取了動作(諸如,通過在用戶界面上操縱控件元素)之后,掛鉤組件212接收指示用戶動作的消息或其它信號。如上所述,對于掛鉤組件212,掛鉤組件212消費該消息,并將其置于記錄隊列中。圖3中的框412指示了用戶在UI 205上采取動作。
記錄組件210然后從UI自動化組件214接收圖像標識信息。這由圖3中的框414指示。在一個示例性實施例中,UI自動化組件214向記錄組件210提供允許記錄組件210記錄顯示屏上的表示或對應于用戶在用戶界面205處采取的動作的圖像的多個信息項。在一個示例性實施例中,這些信息項是用戶啟動或以其它方式操縱的控件元素在顯示屏上的位置、該控件元素的大小、以及包含該控件元素的父窗口。
記錄組件210然后獲取指示與用戶界面205相關聯的并對應于或反映由用戶采取的動作的屏幕截圖的實際圖像信息。這由圖3中的框416指示。
為了執行該步驟,記錄組件210可做許多事以增強系統的操作。例如,記錄組件210可確定記錄比用戶僅操縱的控件元素要多的實際圖像信息(或實際屏幕截圖)可能是有幫助的。這可能是對的,例如,如果當前在正由用戶操縱的顯示上存在多于一個類似的控件元素時。假定例如,用戶在用戶界面上點擊了“OK按鈕”。然而,此時在顯示屏上可能存在多于一個的“OK按鈕”。從而,為了去除各個“OK按鈕”之中的歧義,記錄組件210可獲取不僅是由用戶操縱的特定“OK按鈕”的實際屏幕截圖信息,還有圍繞該“OK按鈕”的所需多個像素的屏幕截圖信息。這提供了具有比單單控件本身的圖像更多上下文的圖像。
類似地,記錄組件210也可記錄包含控件元素的整個父窗口的屏幕截圖。當然,這包含了可用于特別標識用戶操縱的控制元件的大量額外上下文。
為了確定附加的上下文是否需要由記錄組件210記錄,記錄組件210可使用各種不同的技術中的任一個進行判斷。例如,記錄組件210可采用將標識要記錄的上下文數量的試探法。這種試探法可基于所操縱的控件元素的大小和形狀、所操縱的控件元素的特定功能、控件元素在屏幕上的位置(例如,如果控件元素位于左上角,則記錄組件210可在控件元素的右下側取得較多的像素),或試探法可僅僅反映將圍繞控件元素取得的固定數量的像素,而不考慮它位于何處或控件元素執行了何種功能。
記錄組件210可使用任何已知技術獲取實際屏幕截圖信息。例如,在大多數操作系統中,存在公開的應用程序編程接口(API)允許應用程序或其它計算組件獲取當前正顯示的屏幕截圖信息。從而,在一個示例性實施例中,一旦記錄組件210了解到它需要的屏幕截圖信息的坐標、上下文信息的數量以及可任選地控件元素的父窗口之后,它簡單地進行API調用以獲取信息。
獲取了實際圖像信息之后,記錄組件210對其記錄以供稍后使用。這由圖3的框418指示。當然,此時也注意到,記錄組件210可記錄由UI自動化組件214提供的其它信息。例如,UI自動化組件214示例性地向記錄組件210提供控件名、控件類型、在控件上執行的動作、所執行的操縱的類型(諸如鼠標點擊、鼠標滾輪旋轉、鍵盤鍵擊、觸摸墊輸入等)。這些信息均可由記錄組件210記錄。
根據本發明的一個實施例,文本生成組件230結合文本數據庫220自動生成與所捕捉的圖像相關聯并與用戶在用戶界面205上采取的動作相關聯的文本。在使用這些項的實施例中,記錄組件210將所捕捉的實際圖像信息發送給文本生成組件230。這由圖3中的框420指示。自動生成的文本示例性地提供對應于每一用戶對用戶界面205的操縱的逐步指令的書面程式以便執行需要對用戶界面205的多個操縱的整體任務。
以下參考圖5-8描述用于自動生成文本的一個實施例。簡要地,為了生成該文本,文本生成組件230可使用任何合適的方法。在一個示例性實施例中,文本生成組件230在文本數據存儲220中搜索對應于從記錄組件210接收的信息的條目。例如,文本數據存儲220示例性地可以是包含多個條目的XML數據庫,該多個條目包括由用戶在用戶界面205上操縱的控件或其它項的類型、動作的類型和對應于該動作的文本。當然,可使用其它數據存儲方法來實現數據存儲220,且數據存儲220也可包含其它或不同的信息。
例如,假定從記錄組件210接收的信息指示用戶點擊了(或以其它方式調用)“OK按鈕”。然后,文本生成組件230在文本數據存儲220中搜索匹配這種類型的動作的條目。一旦找到匹配,則文本生成組件230從文本數據存儲220中的該條目檢索描述這種類型的動作的文本。該文本例如可僅敘述“點擊OK”。
在任何情況中,文本生成組件230示例性地自動生成描述在用戶界面205上采取的并由記錄組件210記錄的用戶動作的文本。這由圖3中的框422指示。
所生成的文本由圖2中的框235指示。在一個示例性實施例中,由記錄組件210記錄的圖像被自動嵌入在所生成的文本235中,或至少與所生成的文本235相關聯,使得它們能夠在稍后的處理中彼此結合地被回調和顯示。
接著,由記錄組件210記錄的圖像數據和自動生成的文本被提供給編輯器組件240。由記錄組件210記錄的圖像和自動生成的文本示例性地被顯示在編輯器240處的顯示屏上,使得創作者201可生成對應于這些圖像的文本。圖像和由生成組件230生成的文本的顯示由圖3中的框424指示。
創作者然后可修改自動生成的文本或生成新文本。這由圖3中的框436指示。最后,根據期望的格式或模式輸出或保存最終文本245。最終文本245可任選地包括嵌入其中的所捕捉的圖像。這由圖3中的框438指示。
為了設置系統200來自動生成文本,創作者通過首先打開類似于圖5中所示的窗口來激活記錄組件210。這里,創作者可編輯由線450和452指示的屏幕的一部分,以包含諸如正被創建的文檔的標題的信息以及關于該任務的任何介紹性的信息。然而,這種信息可在稍后的編輯期間被添加到文本文檔。
當系統200開始記錄圖像時,UI自動化組件214確定用戶界面205上的可用用戶界面元素。而且記錄組件210使用從UI自動化組件214提供的信息在用戶界面上提供關于哪個控件當前被標識為正被訪問的控件的指示。對控件的高亮由圖6中的參考標號454示出。
圖7是根據本發明的一個實施例,更詳細示出被執行以便為所接收的已記錄的步驟生成文本的步驟的流程圖。框460示出,與所記錄的步驟相關的信息在文本生成組件230處從記錄組件210接收。
一旦與所記錄的步驟相關的信息由文本生成器組件230接收之后,文本生成器組件230就進而在文本數據庫220中搜索匹配所接收的命令的條目。這由框462指示。在一個實施例中,文本數據庫220是包含多個條目的XML數據庫,其中多個條目包括控件或與之交互的其它項的類型、動作類型、控件的新狀態(例如,被選中、取消選中、展開、折疊等)以及動作的相應文本。然而,可使用其它數據存儲方法來保存文本。此外,其它信息可被保存在文本數據庫220中。以下在表1中提供根據一個實施例的文本數據庫的一部分的示例。
表1<EnglishTemplate actionTypeID=″value″controlTypeID=″check box″ActionText=″Select″specialValueID=″checked″>
<Sentence>Select the<tag id=″1″></tag>
checkbox</Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″button″ActionText=″Click″>
<Sentence>Click<tagid=″1″></tag></Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″list item″ActionText=″Double-click″>
<Sentence>In the<tag id=″2″></tag>list,double-click<tag id=″1″></tag></Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″expand_collapse″controlTypeID=″tree item″ActionText=″Expand″specialValuelD=″expanded″>
<Sentence>Click the minus sign next to<tagid=″1″></tag>to collapseit</Sentence></EnglishTemplate>
例如,假定從記錄組件接收到的命令的信息是動作類型=″調用″(action type=“invoke”),控件類型=″按鈕″(control type=“button”),控件名=″點擊OK″(control name=“click OK”),則文本生成組件230在文本數據庫220中搜索并找到匹配該信息的條目。然后它從該條目中檢索對應于″點擊OK″(click OK)的文本。在框464處示出對與所匹配的條目相關聯的文本的獲取。
在記錄所注意的步驟期間,如果創作者通過選擇圖4中所示的用戶界面402上的用戶動作(action)按鈕408來指定該步驟為用戶動作步驟,或者如果文本數據庫220中的條目指示該動作是用戶動作,則文本生成組件230在一個實施例中可提示創作者向所獲取的文本添加對該動作的描述。這在框466處示出。創作者然后可在框468處提供所需文本。然而,創作者可忽視該步驟并在稍后編輯階段期間添加信息。任何添加的文本在框470處被添加到文本235。
如果不需要任何用戶動作,或已經由創作者提供了必要的用戶動作信息,則文本生成器230將新獲取的文本添加到文本文檔。這在框472處示出。
在圖8中由參考標號474-486示出了所生成的文本的示例。該文本向用戶提供用于所期望的任務的逐步指令。該文本可如參考文本數據庫220和文本生成組件230所描述的或根據允許從所接收的輸入命令中自動生成文本的任何方法來生成。自動生成的文本以及所捕捉的圖像然后可呈現給創作者用于編輯。
圖9是示出所捕捉的圖像和自動生成的文本兩者均可在編輯器240處向創作者201顯示的一種方式的屏幕截圖。圖9包括與本發明相關的兩個主要部分。第一部分包括文本顯示部分426,第二部分包括圖像顯示部分428。文本顯示部分426顯示可任選自動生成的文本235或由創作者201創作的文本。圖像顯示部分428顯示由記錄組件210記錄的所捕捉的屏幕截圖。
在自動生成文本的實施例中,該文本在顯示部分426中在235處示出,它可由創作者使用編輯器組件240來編輯(其一個屏幕截圖在圖9中示出)。因此,創作者可高亮顯示部分426上顯示的動作或其它項中的每一個。與高亮項相關聯的圖像在顯示部分428中顯示。因此,在圖9中所示的實施例中,創作者高亮了對應于啟動Accessibility Options(可訪問性選項)控件的動作編號2,相應的圖像在顯示部分428中顯示。用戶然后可按需輸入文本或修改文本,以便獲得對由用戶在用戶界面205處執行的步驟的完全描述。在圖9中所示的實施例中,用戶啟動了用戶界面205上的Accessibility Option控件430。可見,記錄組件210不僅獲取了對應于Accessibility Options控件的控制框430,還獲取了包含圍繞Accessibility Option按鈕430的多個像素的更大的上下文框432。上下文框432顯示了圍繞AccessibilityOptions控件430的額外的上下文,使得它可在屏幕上更容易地被定位。
圖9也示出了記錄組件210已經獲取了包含Accessibility Options控件430的父窗口434。從而,創作者可精確地看見哪個控件由用戶在用戶界面205上操縱,以及該控件駐留在其父窗口上的何處。這極大地協助了創作者生成或修改描述用戶界面上所采取的動作的文本。
可以理解,可按照各種不同方式使用如這里所述的本發明。例如,本發明可用于生成內容(諸如,幫助內容),其中所捕捉的圖像嵌入在文本或幫助文本內。對此的一個示例在圖10中示出。可見,處理中的每一步不僅包含描述做什么來完成該步驟的文本,還包含指示將在何處執行該步驟的視覺圖像。在此實施例中,本發明被用于在文本中生成嵌入的圖像,最終文本245與所嵌入的圖像一起輸出。這由圖4的可任選框438指示。
然而,本發明不必用于將圖像嵌入到文本中。相反,本發明可僅用于向創作者顯示所捕捉的圖像,其中創作者正生成對所采取的并對其捕捉圖像的步驟的書面描述。例如,創作者可能正生成描述修理病毒或將其從計算機移除的處理的文本。創作者可能不希望在該文本中包括嵌入的圖像。在這種情況中,僅顯示圖像,可任選地,也向創作者顯示自動生成的文本,創作者可從草稿中生成文本,或者,在提供了自動生成的文本的實施例中,創作者也可修改自動生成的文本。
在任何情況中,最終文本245將示例性地以最終發布內容的任何模式來創建,或被轉換成該模式。這種模式可以是,例如,Microsoft Assistance標記語言(MAML)、HTML或某種其它的XML格式。
圖11是用于生成描述用戶為在兩個不同的系統上(或具有兩種不同配置的系統上)執行一任務所采取的步驟的內容(諸如,最終文本245)的系統500的框圖。如發明背景中所述的,現有的用于生成內容以描述用戶為執行整體任務而采取的步驟的系統遭受如下的事實執行任何給定任務所必須采取的步驟可能會基于執行任務的計算機的配置而改變。
從而,即使捕捉了指示要執行的步驟的圖像,且即使自動或手動生成了描述這些步驟的文本,但基于由計算機運行的特定操作系統或基于計算機系統配置中的任何其它差異,步驟仍可能改變。事實上,如果操作系統的版本號或由計算機運行的其它軟件不同,所需步驟甚至也可能不同。當然,配置中的大量其它差異也可使執行給定任務所需的步驟不同。例如,對于機器的不同狀態,用戶界面可有所不同。作為示例,取決于計算機是位于網絡域上還是位于工作組上,連接至遠程機器的用戶界面步驟的順序可能有所不同。
從而,為了自動記錄執行給定任務所需的步驟,圖2中所示的記錄系統應記錄以該內容旨在供使用的以所有不同配置來配置的機器上的步驟。記錄在所有這些不同配置上的所記錄的用于執行任務的步驟隨后應當被組合成一個描述如何在不同配置下執行該任務的整體內容集。可任選地,最終向用戶顯示該內容的系統將檢測用戶系統的配置,并僅顯示相關的內容(例如,僅與最終用戶相關的那些步驟)。
因此,系統500示出第一計算機502和第二計算機504,它們各自包括諸如圖2中所示的記錄系統200。計算機502示例性地根據此處指定為配置A的第一配置來配置。另一方面,計算機504根據此處指定為配置B的第二配置來配置。
配置A和B可以是影響執行任何給定任務所需的步驟的任何類型的不同配置,這些步驟將被存儲并對此創作內容。從而,作為示例,配置A可以是位于網絡域上的計算機,而配置B是位于工作組上的計算機。類似地,配置A可以是運行在第一操作系統上的計算機,而配置B是運行在第二操作系統上的計算機。類似地,配置A可以是操作在操作系統的一個版本上的計算機,而配置B是操作在同一操作系統的不同版本上的計算機。除此之外,按照內容創作者的期望也可使用其它不同的配置。當然,也應注意,計算機502和504實際上可以是不同的計算機或安裝在虛擬機上的計算機。
圖11中所示的記錄系統200可類似于圖2中所示的記錄系統,且相應地對其標號。然而,如將在以下更詳細描述,在僅需要一個自動文本生成部分207的情況下,自動文本生成部分207可被部署在創作計算機506上。
計算機502和504示例性地被連接至創作計算機506。創作計算機506示例性地包括導入器機制508和內容編輯器組件(諸如參考圖2描述的編輯器組件240)。
創作計算機506示例性地可以是計算機502或504中的任一個,或者是不同的計算機。類似地,計算機506可運行在與計算機502和504之一相同的操作系統上,或運行在不同的操作系統上。此外,如上所述,編輯器組件240可配備自動文本生成系統207,或它可僅僅是參考圖2所述的編輯器組件240。
操作中,計算機502和504上的記錄系統200允許用戶在與計算機502和504中的每一個相關聯的用戶界面上執行任務,而記錄系統200記錄并存儲被采取以執行所需任務的用戶界面步驟。記錄系統200因此如上所述示例性地記錄對應于用戶所采取的動作的屏幕截圖,也可任選地自動生成對應于這些圖像的文本。
記錄系統200然后示例性地將所記錄的步驟格式化成可由導入器組件508接受的格式。例如,計算機502上的記錄系統200將示例性地記錄用戶在計算機502的用戶界面上為執行給定任務而進行的一連串步驟,并根據一XML格式將所記錄的這些步驟格式化成所記錄的片段A(也由標號510指定)。類似地,計算機504上的記錄系統200將示例性地記錄步驟,并根據一XML格式將它們格式化成所記錄的片段B(也由標號512指定)。
所記錄的片段510和512然后由計算機502和504提供給導入器組件508。導入器組件508被示為位于計算機506上,但當然可以理解,導入器組件508可以是使功能分布在系統500中所示的各個計算機之中,或與所有這些計算機分離駐留,或安置在除計算機506以外的計算機之一上的組件。在任何情況中,導入器組件508可以是用于接收所記錄的片段510和512并將其提供給編輯器組件240以便向用戶呈現的任何合適的導入機制。
導入器組件508示例性地在記錄計算機506上存儲所記錄的片段510和512,并以各種不同方式之一將它們導入到編輯器組件240中。例如,這可通過經由共享目錄導入片段510和512來完成。類似地,這可通過將所記錄的片段510和512存儲到磁盤或另一外部存儲器設備上來完成,其中該外部存儲器設備物理上被運送至計算機506,在那里片段510和512被加載到編輯器組件240。類似地,可遠程使用計算機506來操作計算機502和504,然后計算機506可將所記錄的片段510和512存儲在可由計算機506訪問的剪貼板或其它共享的應用程序空間上。這樣的共享空間的一個實施例是由華盛頓州雷德蒙市的微軟公司提供的WindowsClipboard系統。
在使用共享應用程序空間來提供片段510和512的實施例中,計算機506從共享的應用程序空間中讀取片段510和512,并將其導入到編輯器組件240內。例如,在使用Windows Clipboard應用程序空間的實施例中,一種同樣由華盛頓州雷德蒙市的微軟公司提供的被稱為遠程桌面(Remote Desktop)的程序允許在遠程與本地計算機之間(諸如在計算機502和504與計算機506之間)共享剪貼板空間。
在任何情況中,導入器組件508用于將所記錄的片段510和512導入至編輯器組件240內。在計算機502和504上的記錄系統200包括自動文本生成系統270的實施例中,所記錄的片段510和512將包括自動生成的文本。或者,文本可在編輯器組件240處自動或手動生成。
編輯器組件240向用戶顯示片段510和512,并因此允許由用戶插入適當的條件。例如,圖11中所示的最終文本245的實施例示出了當用戶已經插入了條件語句514和516之后,所記錄的片段510和所記錄的片段512被插入整體文本245中。條件語句514例如是“條件If配置A,then”。這指示,如果該計算機以配置A配置,則將向用戶顯示或自動執行由所記錄的片段510指示的步驟。
條件516陳述“條件If配置B,then”。這指示,如果該計算機根據配置B配置,則將向用戶顯示或執行由所記錄的片段512所指示的步驟。
當然,也可理解,創作者也可按照任何期望的方式刪除或修改文本。這可通過在編輯器組件210上使用常規編輯技術來完成。
表2示出了由來自兩個不同配置的記錄形成的示例性XML文檔。這兩個XML片段被記錄在其一運行在網絡域上另一運行在網絡工作組上的計算機上。注意,condition=″Network_connectiondomain″屬性被標記以處理用于判斷運行哪一片段的if-then邏輯。
表2<task>
<title>Add a new user to the computer</title>
<introduction>When you add a user to your computer,you are allowing thatindividual to have access to files and programs on your computer.</introduction>
<commandStep>
<command>control.exe userpasswords</command>
<description>Open User Accounts in Control Panel</description>
</commandStep>
<!-***這部分是位于網絡域上的機器上的記錄器***--/>
<stepGroup condition=″Network_connectiondomain″>
<uiActionsStep><actionRef id=″0″/><actionRef id=″1″/>
<description>On the <ui>Users</ui> tab,click Add</description>
</uiActionsStep>
<uiActionsStep><actionRef id=″2″/>
<description>Follow the instructions in the wizard to add a newuser</description>
</uiActionsStep>
</stepGroup>
<!-***這部分是位于工作組上的機器上的記錄器***-/>
<stepGroup condition=″Network_connectionworkgroup″>
<uiActionsStep><actionRef id=″3″/>
<description>Click<ui>Create a new account</ui></description>
</uiActionsStep>
<uiActionsStep><actionRef id=″4″/>
<description>Type a name for the new user account</description>
</uiActionsStep>
<uiActionsStep><actionRef id=″5″/>
<description>Click Next</description>
</uiActionsStep>
<uiActionsStep><actionRef id=″6″/>
<description>Click either Computer Administrator or Limiteddepending on the type of account you want to assign the newuser</description>
</uiActionsStep>
<uiActionsStep><actionRef id=″7″/>
<description>CIick create</description>
</uiActionsStep>
</stepGroup></task>
因此,可見本發明允許創作者在不同配置下的不同機器上記錄所有或部分宏(或執行給定任務的另一連串步驟),然后在一個創作機器上組裝所記錄的片段以得到最終內容。這允許宏被記錄在不同機器上,但主創作步驟可在一個位置處執行。這使得內容的創作相比現有系統而言較不昂貴和復雜,并更高度自動化。
盡管參考特定實施例描述了本發明,但本領域的技術人員將認識到,可對形式和細節進行改變,而不背離本發明的精神和范圍。
權利要求
1.一種用于生成指示為執行任務而在用戶界面上采取的步驟的內容的方法,所述方法包括接收第一用戶輸入,所述第一用戶輸入指示對第一配置中的第一計算設備的用戶界面上的用戶界面元素的用戶操縱;響應于所述第一用戶輸入,在所述第一計算設備上記錄指示對所述用戶界面元素的操縱的第一信息;接收第二用戶輸入,所述第二用戶輸入指示對第二配置中的第二計算機的用戶界面上的用戶界面元素的用戶操縱;響應于所述第二用戶輸入,在所述第二計算設備上記錄指示對所述用戶界面元素的操縱的第二信息;以及將所述第一和第二信息組合以獲取所述內容。
2.如權利要求1所述的方法,其特征在于,所述組合是在第三計算設備上執行的。
3.如權利要求1所述的方法,其特征在于,所述組合是在所述第一和第二計算設備之一上執行的。
4.如權利要求1所述的方法,其特征在于,還包括自動生成對應于所述第一用戶輸入的第一文本;以及自動生成對應于所述第二用戶輸入的第二文本。
5.如權利要求4所述的方法,其特征在于,自動生成所述第一文本是在所述第一計算設備上執行的。
6.如權利要求4所述的方法,其特征在于,自動生成所述第二文本是在所述第二計算設備上執行的。
7.如權利要求1所述的方法,其特征在于,所述內容包括對為了在具有所述第一和第二配置的計算設備上完成所述任務而執行的步驟的描述。
8.如權利要求1所述的方法,其特征在于,所述第一信息包括在所述第一計算設備的用戶界面上操縱的用戶界面元素的至少一部分的第一圖像,所述第二信息包括在所述第二計算設備的用戶界面上操縱的用戶界面元素的至少一部分的第二圖像。
9.如權利要求8所述的方法,其特征在于,所述組合包括在被配置成接收對所述第一和第二計算設備上的用戶界面元素的用戶操縱的文字描述的編輯器組件上顯示所述第一和第二圖像。
10.如權利要求3所述的方法,其特征在于,所述組合包括將所述第一和第二圖像嵌入到所述文字描述中。
11.一種用于生成描述由用戶采取以便在用戶界面上執行任務的步驟的內容的內容生成系統,包括部署在具有第一配置的第一計算設備上的第一記錄系統,所述第一記錄系統被配置成接收關于用戶已經在所述第一計算設備上采取了步驟的指示,并記錄指示所述步驟的第一信息;部署在具有第二配置的第二計算設備上的第二記錄系統,所述第二記錄系統被配置成接收關于用戶已經在所述第二計算設備上采取了步驟的指示,并記錄指示所述步驟的第二信息;以及被配置成接收所述第一和第二信息并組合所述第一和第二信息以形成所述內容的編輯器組件。
13.如權利要求11所述的內容生成系統,其特征在于,所述編輯器組件被部署在第三計算設備上。
14.如權利要求11所述的內容生成系統,其特征在于,所述編輯器組件被部署在所述第一和第二計算設備之一上。
15.如權利要求11所述的內容生成系統,其特征在于,所述第一和第二記錄系統被配置成將所述第一和第二信息分別記錄為指示所述用戶在所述第一和第二計算設備上所執行的步驟的第一和第二圖像。
16.如權利要求15所述的內容生成系統,其特征在于,所述編輯器組件被配置成顯示所記錄的第一和第二圖像并接收相關聯的文本。
17.如權利要求16所述的內容生成系統,其特征在于,所述編輯器組件被配置成生成帶有嵌入在所述相關聯文本中的圖像的最終內容。
18.如權利要求11所述的內容生成系統,其特征在于,還包括被配置成接收所述第一信息并基于所述第一信息自動生成描述所述用戶在所述第一計算設備上所執行的步驟的文本的自動文本生成系統。
19.如權利要求18所述的內容生成系統,其特征在于,所述自動文本生成系統被配置成接收所述第二信息并基于所述第二信息自動生成描述所述用戶在所述第二計算設備上所執行的步驟的文本。
20.如權利要求19所述的內容生成系統,其特征在于,所述自動文本生成系統被部署在第三計算設備上。
21.如權利要求19所述的內容生成系統,其特征在于,所述自動文本生成系統包括部署在所述第一計算設備上并基于所述第一信息生成文本的第一自動文本生成器;以及部署在所述第二計算設備上并基于所述第二信息生成文本的第二自動文本生成器。
全文摘要
本發明針對用于自動記錄指示創作者在完成用戶界面(205)上執行的整體任務的各步驟時的動作的信息的系統(500)。一記錄系統(200)被用于記錄在具有不同配置的不同計算機(502、504)上執行任務所采取的步驟。所記錄的步驟然后被導入創作組件(240),在那里所記錄的步驟被安排成期望的內容。
文檔編號G06F3/033GK1969272SQ200480043357
公開日2007年5月23日 申請日期2004年7月8日 優先權日2004年7月8日
發明者A·J·麥克格林奇, A·芭拉, J·D·雅各布 申請人:微軟公司