專利名稱:對系統(tǒng)狀態(tài)改變作出反應(yīng)的用戶界面管理設(shè)備和方法
技術(shù)領(lǐng)域:
本申請總體上是涉及用戶界面,尤其是,涉及對系統(tǒng)狀態(tài)改變作 出反應(yīng)的用戶界面管理設(shè)備和方法。
背景技術(shù):
設(shè)置計算機工作站以便工作站能被不同的用戶使用是常用手段。 在使用工作站的情況下為了能保持個人化設(shè)置和用戶間的私密性,這 樣的工作站的操作系統(tǒng)典型地提供一種登錄用戶界面。用戶通過與登 錄用戶界面的互動完成認證過程,訪問能在工作站中操作的應(yīng)用程序。 接著工作站可以有登出(log off)系統(tǒng)狀態(tài)和登錄系統(tǒng)狀態(tài)。而且,響應(yīng)用戶指令,或者由于一段時間的不活動,工作站被鎖定。即,工 作站可顯示登錄用戶界面,要求用戶完成認證過程,結(jié)束后再次回頭 訪問工作站執(zhí)行的多個應(yīng)用程序中。鎖定的系統(tǒng)狀態(tài)與登出系統(tǒng)狀態(tài) 非常相似。
已知存在計算機外圍設(shè)備,工作站到外圍的連接可不考慮工作站 系統(tǒng)狀態(tài)而建立。這樣的連接具有相應(yīng)的認證協(xié)議,從而,不必依賴 工作站操作系統(tǒng)操縱的認證協(xié)議。特別地,工作站到外圍連接的建立 一般要求用戶輸入,工作站可要求帶有根據(jù)系統(tǒng)狀態(tài)進行特定用戶界 面模塊選擇的多個用戶界面模塊。但是,發(fā)現(xiàn)在這樣情況中出現(xiàn)了問題,工作站從登錄系統(tǒng)狀態(tài)轉(zhuǎn) 換到鎖定系統(tǒng)狀態(tài)而工作站到外圍連接的建立還在繼續(xù)。如果,當(dāng)工 作站具有登錄系統(tǒng)狀態(tài)時,用戶幵始,但沒有結(jié)束,建立工作站到外 圍的連接,那么一旦工作站具有鎖定的系統(tǒng)狀態(tài),用戶就被阻止建立 工作站到外圍的連接。在這樣的情況下,很有可能,由工作站執(zhí)行的 允許建立工作站到外圍連接的應(yīng)用程序等待用戶進一步輸入,而用戶 輸入被鎖定的系統(tǒng)狀態(tài)阻止。 發(fā)明內(nèi)容根據(jù)一個實施例,優(yōu)先地提供一種管理多用戶界面的方法,所述 方法包括檢測系統(tǒng)狀態(tài)從現(xiàn)有系統(tǒng)狀態(tài)到新的系統(tǒng)狀態(tài)的改變;響 應(yīng)所述檢測,傳輸狀態(tài)請求到第一用戶界面模塊(114);從所述第一 用戶界面模塊(114)接收狀態(tài)響應(yīng),所述狀態(tài)響應(yīng)包括控制狀態(tài)數(shù)據(jù) 結(jié)構(gòu);及發(fā)送所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)到第二用戶界面模塊(116)。根據(jù)另一個實施例,優(yōu)先地,提供計算設(shè)備管理多個用戶界面, 所述計算設(shè)備包括處理器,用于:檢測系統(tǒng)狀態(tài)從現(xiàn)有系統(tǒng)狀態(tài)到新 的系統(tǒng)狀態(tài)的改變;響應(yīng)所述檢測,發(fā)送狀態(tài)請求到第一用戶界面模 塊;從所述第一用戶界面模塊接收狀態(tài)響應(yīng),所述狀態(tài)響應(yīng)包括控制 狀態(tài)數(shù)據(jù)結(jié)構(gòu);及發(fā)送所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)到第二用戶界面模塊。根據(jù)另一個實施例,優(yōu)先地,提供一種計算機可讀介質(zhì),包括計 算機可執(zhí)行指令,當(dāng)被處理器執(zhí)行時,導(dǎo)致所述處理器檢測系統(tǒng)狀 態(tài)從現(xiàn)有系統(tǒng)狀態(tài)到新系統(tǒng)狀態(tài)的改變;響應(yīng)所述檢測,發(fā)送狀態(tài)請 求到第一用戶界面模塊;從所述第一用戶界面模塊接收狀態(tài)響應(yīng),所 述狀態(tài)響應(yīng)包括控制狀態(tài)數(shù)據(jù)結(jié)構(gòu);及發(fā)送所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)到 第二用戶界面模塊。根據(jù)另一個實施例,優(yōu)先地,提供一種在計算設(shè)備上管理多用戶 界面的方法,所述方法包括接收請求以啟動涉及Windows服務(wù)(112) 的用戶界面模塊;判斷所述計算設(shè)備的現(xiàn)有系統(tǒng)狀態(tài);基于所述判斷, 在多個用戶界面模塊中選擇候選用戶界面模塊(114, 116);啟動所述 候選用戶界面模塊(114, 116);接收向新系統(tǒng)狀態(tài)改變的指示;取消 所述候選用戶界面模塊(114, 116)當(dāng)前激活的線程。根據(jù)另一個實施例,優(yōu)先地,提供一種管理多用戶界面的計算設(shè) 備,所述計算設(shè)備包括處理器,用于接收請求以啟動涉及Windows 服務(wù)的用戶界面模塊;判斷所述計算設(shè)備的現(xiàn)有系統(tǒng)狀態(tài);基于所述 判斷,在多個用戶界面模塊中選擇候選用戶界面模塊;啟動所述候選 用戶界面模塊;接收向新系統(tǒng)狀態(tài)改變的指示;取消所述候選用戶界
面模塊當(dāng)前激活的線程。根據(jù)另一個實施例,優(yōu)先地,提供一種計算機可讀介質(zhì),包括計 算機可執(zhí)行指令,當(dāng)被計算設(shè)備中的處理器執(zhí)行時,導(dǎo)致所述處理器: 接收請求以啟動涉及Windows服務(wù)的用戶界面模塊;判斷所述計算設(shè)備 的現(xiàn)有系統(tǒng)狀態(tài);基于所述判斷,在多個用戶界面模塊中選擇候選用 戶界面模塊;啟動所述候選用戶界面模塊。
現(xiàn)在參照以舉例的方式示出的本發(fā)明實施例的附圖,其中-圖l示出了適合本申請的具體方面的工作站;圖2,根據(jù)一個實施例,示出了管理用戶界面對系統(tǒng)狀態(tài)從當(dāng)前 系統(tǒng)狀態(tài)到新系統(tǒng)狀態(tài)改變的響應(yīng)的方法的示例性步驟; 圖3示出了涉及圖2示例性步驟執(zhí)行的信息流程;及 圖4,根據(jù)另一實施例,示出了管理服務(wù)的多個用戶界面的方法 的示例性步驟。
具體實施方式
在ww.wikipedia.org中指出,計算技術(shù)中,"Winlogon"是微軟 Windows操作系統(tǒng)的一部分,有責(zé)任操作安全警告密鑰,在登錄時加載 用戶文件,當(dāng)屏幕保護程序運行時(請求另一個認證步驟)可選擇鎖 定計算機。用戶信用的獲得和驗證留給其他部分。Winlogon處理獨立于認證策略的界面功能。Winlogon產(chǎn)生工作站 的桌面,執(zhí)行暫停操作,提供一組圖形標(biāo)識和認證(GINA)庫的支持 功能,負責(zé)為機器和用戶配置群政策。GINA庫是某些提供安全認證和互動登錄服務(wù)的微軟Windows操作 系統(tǒng)的一部分。GINA庫是動態(tài)鏈接庫(DLL),當(dāng)機器啟動時,Winlogon 處理過程中載入該庫。GINA庫負責(zé)處理安全警告序列,典型地為 Control-Alt-Delete,當(dāng)序列被接收時,GINA庫負責(zé)與用戶互動。當(dāng) 用戶第一次登錄時,GINA庫,或者簡稱為"GINA",也能啟動用戶的初 始處理(例如Windows Shell)。Winlogon默認配置為使用默認GINA。 Winlogon能配置為使用不同 的GINA,從而提供非標(biāo)準(zhǔn)認證方法和/或提供不同于默認GINA提供的可 視用戶界面的可視用戶界面。代表GINA DLL的文件一般位于System32文件夾中,可用提供可替 代用戶驗證和認證過程的、代表專用GINA DLL的文件取代,例如那些 取決于與生物學(xué)外圍設(shè)備通信的認證過程。典型的非標(biāo)準(zhǔn)認證方法可包括智能卡讀卡器,還可包括基于生物 學(xué)識別用戶。GINA替代的開發(fā)者被要求提供執(zhí)行一組應(yīng)用程序界面 (API)調(diào)用,其覆蓋功能,例如顯示"工作站鎖定"對話框,處理不 同用戶狀態(tài)的安全警告序列,響應(yīng)鎖定工作站是否為允許動作的詢問, 支持在終端基于服務(wù)的連接上收集用戶信用,與屏幕保護程序互動。 Winlogon部分獨自負責(zé)調(diào)用GINA庫中的這些APIs。Windows "服務(wù)"是當(dāng)Windows操作系統(tǒng)啟動時開始的以及在 Windows運行時在后臺運行的應(yīng)用程序。Windows提供了稱為服務(wù)控制 管理器(SCM)的界面,其管理服務(wù)的生成、刪除、開始和停止。將被 登記作為服務(wù)的應(yīng)用程序需要以能處理來自SCM的消息(開始、停止、 暫停等)的應(yīng)用程序這樣的方式撰寫。接著,在一個或多個API調(diào)用中,服務(wù)的名字和其他特征,例如服務(wù)的說明,可向SCM登記。Windows服務(wù)默認作為與所謂"LOCALSystem"的帳戶有關(guān)的虛擬 用戶運行。由于LOCALSystem不是真實的用戶,當(dāng)用戶特定數(shù)據(jù)需要服 務(wù)存儲時,某些問題就自己出現(xiàn)了,因為與LOCALSystem帳戶有關(guān)的用 戶沒有主目錄。SCM維護登記服務(wù)的數(shù)據(jù)庫,包括有關(guān)每個服務(wù)應(yīng)該如何開始的 信息。SCM也能使系統(tǒng)管理者為每個服務(wù)定制安全要求,從而控制用戶 訪問服務(wù)。如果給定服務(wù)在LOCALSystem帳戶的背景中運行,具有被稱為 SERVICEJNTERACTIVE一PROCESS特征的特征,所給定的服務(wù)被稱為互動 服務(wù)?;臃?wù)能顯示圖形用戶界面(GUI)并接收用戶輸入。已知在LOCALSystem帳戶的背景下運行互動服務(wù)是危險的作法, 應(yīng)該避免。如果多用戶系統(tǒng)上運行的服務(wù)必須與用戶互動的話,建議
該服務(wù)應(yīng)該通過單獨的GUI模塊進行,該單獨的GUI模塊在用戶帳戶的 背景下運行。還建議單獨的GUI模塊應(yīng)該設(shè)計為通過某些程序間通信的 方法與服務(wù)通信,例如指定的傳輸線。將服務(wù)和單獨GUI模塊的結(jié)合作 為客戶/服務(wù)器執(zhí)行,并在LOCALSystem帳戶背景下作為運行互動服務(wù) 的替代進行服務(wù)。當(dāng)GUI模塊的線程有必要發(fā)送消息到Windows服務(wù),其中該消息請 求響應(yīng),線程可在"線程地圖"(threadmap)上生成一個條目,例如 作為地圖或列表執(zhí)行。線程地圖上的每個條目可以認為是包括兩部分 響應(yīng)類型;和對消息發(fā)送對象的參照。響應(yīng)類型的例子可包括在其他 事物中,版本核實請求的響應(yīng),同步設(shè)置請求的響應(yīng)和設(shè)置IT策略請 求的響應(yīng)。消息發(fā)送對象包括是否接收到響應(yīng)的標(biāo)記指示;線程需要等待 的事件;及保存響應(yīng)時所接收到數(shù)據(jù)的響應(yīng)數(shù)據(jù)域。線程需要等待的 事件可包括例如早前請求的未完成響應(yīng)。例如事件可以是處理 (handle)Q發(fā)送期望得到響應(yīng)的消息前,發(fā)送線程首先產(chǎn)生消息發(fā)送對象。 發(fā)送線程接著在線程地圖上放置條目。重新調(diào)用條目包括單獨響應(yīng)類 型的指示(即,發(fā)送線程將等待的響應(yīng)類型)和消息發(fā)送對象的參照。 發(fā)送線程接著發(fā)送消息。然后發(fā)送線程等待事件,該事件是對具有獨 特響應(yīng)類型的響應(yīng)消息的接收。被稱為接收器線程的單一線程負責(zé)讀取傳入的消息,判斷傳入的 消息是否是對發(fā)送線程之一所發(fā)送的消息的響應(yīng),如果是,則喚醒相 應(yīng)的發(fā)送線程。接收器線程空閑直到消息被接收。 一接收到傳入的消 息,接收器線程就讀取傳入消息的消息類型。接收器線程比較與線程 地圖中每個條目的響應(yīng)類型相反的傳入消息的消息類型。如果接收器 線程在與傳入消息的消息類型匹配的響應(yīng)類型的線程地圖上找到條 目,接收器線程將匹配條目的響應(yīng)標(biāo)識設(shè)置為"是",把傳入消息拷貝 到響應(yīng)數(shù)據(jù)域中,從線程地圖中移除條目,通知"接收響應(yīng)消息"這 個事件。發(fā)送線程可繼續(xù)識別"接收響應(yīng)消息"這個事件出現(xiàn)。在繼續(xù)進行中,發(fā)送線程再檢查消息發(fā)送對象中的響應(yīng)標(biāo)識。如果響應(yīng)標(biāo)識具 有"是"值,則接收到響應(yīng),消息發(fā)送對象的響應(yīng)數(shù)據(jù)域可認為包括 響應(yīng)。如果該響應(yīng)標(biāo)識具有"否"值,則還沒有接收到響應(yīng)。分離的用戶界面模塊可作為Windows服務(wù)的客戶端存在。例如, 當(dāng)工作站處于登出系統(tǒng)狀態(tài)或鎖定系統(tǒng)狀態(tài)時,第一用戶界面模塊可 用作給定Windows服務(wù)的第一客戶端,當(dāng)工作站具有登錄系統(tǒng)狀態(tài)時, 第二用戶界面模塊可用作給定的Windows服務(wù)的第二客戶端。第一用戶 界面模塊具有第一消息引擎,處理第一用戶界面模塊和給定的Windows 服務(wù)中線程之間的消息。相似地,第二用戶界面模塊具有第二消息引 擎,處理第二用戶界面模塊和給定Windows服務(wù)中的線程之間的消息??紤]這樣的情況,其中給定的Windows服務(wù)使用已知藍牙通信協(xié) 議與最近的設(shè)備通信。這樣的Windows服務(wù)可要求用戶互動選擇所連接 的設(shè)備及還可要求用戶輸入萬能密鑰序列。也考慮到這樣情況,當(dāng)工 作站鎖定時,用戶通過使用第二用戶界面模塊正在建立藍牙連接,即 正在登錄。通常,當(dāng)面對登錄用戶界面時,用戶不能使用第一用戶界 面模塊,即當(dāng)工作站具有鎖定系統(tǒng)狀態(tài)時設(shè)計使用的用戶界面模塊, 建立藍牙連接,因為第二用戶界面模塊中的線程還是等待用戶輸入以 傳送給負責(zé)建立藍牙連接的Windows服務(wù)??偟膩碚f,用戶界面管理設(shè)備模塊可被執(zhí)行,以監(jiān)控用戶界面模 塊和定向消息到正確的用戶界面模塊。響應(yīng)系統(tǒng)狀態(tài)的改變,用戶界 面管理設(shè)備模塊判斷第一用戶界面模塊的狀態(tài)并發(fā)送第一用戶界面模 塊的狀態(tài)指令到第二用戶界面模塊。另外,用戶界面管理設(shè)備模塊從 與第一用戶界面模塊相關(guān)的線程地圖拷貝條目到與第二用戶界面模塊 相關(guān)的線程地圖。圖1示出了工作站100,典型地包括處理器102,與處理器102通信 的顯示器104、輸入設(shè)備106和存儲器108。處理器102可執(zhí)行多個軟件實體和模塊,用于執(zhí)行該應(yīng)用程序的示例性方法。軟件實體和模塊在 圖1中示出為GINA110、 Windows服務(wù)112、第一用戶界面模塊114、第二 用戶界面模塊116和用戶界面管理設(shè)備118。軟件實體和模塊可從包括 從遠程資源下載的文件的磁盤、磁帶、芯片或隨機存儲器中下載到存
儲器108上。圖2示出管理用戶界面對系統(tǒng)狀態(tài)從當(dāng)前系統(tǒng)狀態(tài)向新的系統(tǒng)狀 態(tài)改變的響應(yīng)的方法的示例性步驟。圖3示出了涉及圖2示例性步驟的 執(zhí)行的消息流程。參照圖3,初始狀態(tài)下,第一用戶界面模塊114與 Windows服務(wù)112通信。尤其是,圖3示出Windows服務(wù)112發(fā)送信息消息 302到用戶界面管理設(shè)備118。注意到,第一用戶界面模塊114通常被 Windows服務(wù)112登記,而此處用用戶界面管理設(shè)備118代替登記。用戶 界面管理設(shè)備118接收信息消息302,基于當(dāng)前系統(tǒng)狀態(tài)(即登錄),選 擇第一用戶界面模塊114作為目的地。第一用戶界面114從用戶界面管理設(shè)備118接收信息消息302并生 成請求消息304。第一用戶界面模塊114發(fā)送請求消息304到用戶界面管 理設(shè)備118,而不是直接發(fā)送請求消息304到Windows服務(wù)112。在請求消息304從Windows服務(wù)112請求響應(yīng)的情況下,該第一用 戶界面模塊114產(chǎn)生信息發(fā)送對象,在與第一用戶界面模塊114相關(guān)的 線程地圖上放置條目,條目包括消息發(fā)送對象的參照。用戶界面管理 設(shè)備118接著傳送請求消息304到Windows服務(wù)112。然后出現(xiàn)系統(tǒng)狀態(tài)的改變。示例性的系統(tǒng)狀態(tài)改變包括登出到 登錄;登錄到登出;登錄到鎖定;鎖定到登錄。典型地,GINA庫llO 處理導(dǎo)致系統(tǒng)狀態(tài)改變的事件(例如,安全警告序列,如 Contro卜Alt-Delete)。例如,GINA庫1 IO處理指示系統(tǒng)狀態(tài)改變的消 息306到用戶界面管理設(shè)備118的發(fā)送。響應(yīng)指示系統(tǒng)狀態(tài)改變的消息306的接收,用戶界面管理設(shè)備118 發(fā)送(圖2步驟202)狀態(tài)請求消息308到第一用戶界面模塊114。第一 用戶界面模塊114通過產(chǎn)生包括第一用戶界面模塊114的狀態(tài)的控制狀 態(tài)數(shù)據(jù)結(jié)構(gòu)來制定狀態(tài)響應(yīng)消息310。包括在控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)中的信 息可包括顯示哪個對話框的指示;集中在哪個對話框域的指示;和 所有對話框域的內(nèi)容的指示。然后第一用戶界面模塊114發(fā)送狀態(tài)響應(yīng) 消息310到用戶界面管理設(shè)備118。一接收到(步驟204)狀態(tài)響應(yīng)消息310,用戶界面管理設(shè)備118 制定狀態(tài)更新消息312,以包括在狀態(tài)響應(yīng)消息310中接收到的控制狀 態(tài)數(shù)據(jù)結(jié)構(gòu)。然后用戶界面管理設(shè)備118發(fā)送(步驟206)狀態(tài)更新消 息312到第二用戶界面模塊116。另外,用戶界面管理設(shè)備118從與第一 用戶界面模塊114相關(guān)的線程地圖拷貝(步驟208)條目到與第二用戶 界面模塊116相關(guān)的線程地圖(這樣,與第二用戶界面312相關(guān)的線程 地圖包括等待響應(yīng)請求消息304的線程)。然后Windows服務(wù)112發(fā)送響應(yīng)消息314到用戶界面管理設(shè)備118, 響應(yīng)消息314是對請求消息304的響應(yīng)。用戶界面管理設(shè)備118接收響應(yīng) 消息314,基于改變了的系統(tǒng)狀態(tài),選擇第二用戶界面模塊116作為目 的地。第二用戶界面模塊116的接收器線程從用戶界面管理設(shè)備118接 收響應(yīng)消息314,將響應(yīng)消息314的消息類型與條目匹配,該條目相關(guān) 于與第二用戶界面模塊116關(guān)聯(lián)的線程地圖上的請求消息304。然后, 接收器線程生成喚醒等待響應(yīng)請求消息304的線程的事件?;氐竭@樣的情況,其中給定的Windows服務(wù)是藍牙連接服務(wù),場 景為用戶通過使用第二用戶界面模塊正在建立藍牙連接。例如,用戶 使用了第二用戶界面模塊的設(shè)備選擇對話框選擇最近的可使用藍牙的 設(shè)備。另外,在第二用戶界面模塊的萬能密鑰輸入對話框的數(shù)字輸入 域中,工作站鎖定前,用戶例如輸入了四位萬能密鑰的前兩位。響應(yīng) 工作站的鎖定,用戶界面管理設(shè)備發(fā)送狀態(tài)請求到第二用戶界面模塊, 并接收狀態(tài)響應(yīng)。狀態(tài)響應(yīng)包括指示萬能密鑰輸入對話框打開的控制 狀態(tài)數(shù)據(jù)結(jié)構(gòu),其中兩個數(shù)位被接收到,還包括兩個數(shù)位的值。在鎖定的系統(tǒng)狀態(tài)中,用戶請求啟動用戶界面模塊。用戶界面管理設(shè)備,基于鎖定的系統(tǒng)狀態(tài),選擇并啟動第一用戶界面模塊。另外,用戶界面管理設(shè)備發(fā)送狀態(tài)更新消息到第一用戶界面模塊。狀態(tài)更新消息包括指示萬能密鑰輸入對話框打開的控制狀態(tài)數(shù)據(jù)結(jié)構(gòu),兩個數(shù)位在數(shù)字輸入域被接收及其值。 一啟動,第一用戶界面模塊就向用戶顯示萬能密鑰輸入對話框,在數(shù)字輸入域,接收兩個數(shù)位。通常在數(shù)字輸入域中,萬能密鑰的數(shù)字被接收到的指示用星號("*")顯示完成。但是,其他符號可使用,如點(".")或加重號(" ")。當(dāng)與第二用戶界面模塊相關(guān)的線程地圖到與第一用戶界面模塊
相關(guān)的線程地圖的拷貝(步驟208)提供足夠信息允許第一用戶界面模 塊的線程等待完成萬能密鑰的輸入,包含在狀態(tài)更新信息312中接收到 的控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)中的信息允許第一用戶界面模塊顯示萬能密鑰輸 入對話框在對話框鎖定時的狀態(tài)。有利地,上述方案允許用戶在三種情況下無縫地使用對話框界面 與Wind0WS服務(wù)互動并提供輸入當(dāng)用戶登錄時;當(dāng)工作站鎖定時;當(dāng)無用戶登錄時。對本領(lǐng)域普通技術(shù)人員而言顯而易見的是,當(dāng)系統(tǒng)狀態(tài)是登出/鎖定時,為使用所設(shè)計的用戶界面模塊可合并進入專用GINA庫。作為判斷和傳送用戶界面模塊狀態(tài)的指示的替代,響應(yīng)接收指示 來自GINA的系統(tǒng)狀態(tài)的改變的消息,用戶界面管理設(shè)備可簡單地安排 取消用戶界面模塊正在使用的當(dāng)前激活的線程。之后,新的系統(tǒng)狀態(tài) 中,用戶可啟動與Windows服務(wù)的互動。作出響應(yīng),用戶界面管理設(shè)備 選擇用戶界面模塊中合適的一個,要求用戶從開始輸入數(shù)據(jù)。圖4示出了管理多個用戶界面的方法的示例性步驟,該界面為了 單一Windows服務(wù)的使用而開發(fā)。首先,用戶界面管理設(shè)備接收(步驟 402)請求以啟動Windows服務(wù)的用戶界面。用戶界面管理設(shè)備再判斷 (步驟404)系統(tǒng)狀態(tài)。如果用戶界面管理設(shè)備判斷系統(tǒng)狀態(tài)為"登錄", 則用戶界面管理設(shè)備選擇登錄用戶界面模塊并啟動(步驟406)登錄用 戶界面模塊。當(dāng)執(zhí)行登錄用戶界面模塊,用戶界面管理設(shè)備可判斷(步 驟408)接收到了系統(tǒng)狀態(tài)改變信息。如果用戶界面管理設(shè)備確定(步 驟408)系統(tǒng)狀態(tài)改變信息已接收,則用戶界面管理設(shè)備安排取消(步 驟410)登錄用戶界面模塊當(dāng)前激活的線程。如果用戶界面管理設(shè)備確 定(步驟408)系統(tǒng)狀態(tài)改變信息沒有被接收,則用戶界面管理設(shè)備繼 續(xù)監(jiān)視這樣的接收。取消(步驟410)登錄用戶界面模塊當(dāng)前激活的線程可包括,例 如,從與當(dāng)前激活線程相關(guān)的線程地圖中移除每個條目并生成事件指 示每個當(dāng)前激活的線程終止。這樣的取消可認為等價于這樣的動作, 用戶界面模塊需要用戶選擇由用戶界面模塊顯示在對話框上的"取消" 按鈕。結(jié)果是用戶界面模塊回到空閑的狀態(tài)。 有利地, 一旦該登錄用戶界面模塊回到空閑狀態(tài),登錄用戶界面不再等待進一步的用戶輸入,新的用戶界面模塊可與Windows服務(wù)無限 制地通信。在新的系統(tǒng)狀態(tài)中,用戶界面管理設(shè)備可再次接受(步驟402) 請求以啟動Windows服務(wù)的用戶界面。然后用戶界面管理設(shè)備判斷(步 驟404)系統(tǒng)狀態(tài)。如果用戶界面管理設(shè)備判斷系統(tǒng)狀態(tài)是"登出"或 "鎖定",則用戶界面管理設(shè)備選擇登出/鎖定用戶界面模塊并啟動(步 驟412)登出/鎖定用戶界面模塊。當(dāng)?shù)浅?鎖定用戶界面模塊執(zhí)行時, 用戶界面管理設(shè)備可判斷(步驟408)系統(tǒng)狀態(tài)改變消息是否被接收。 如果用戶界面管理設(shè)備確定(步驟408)系統(tǒng)狀態(tài)改變消息已接收到, 則用戶界面管理設(shè)備安排取消(步驟410)登出/鎖定用戶界面模塊當(dāng) 前激活的線程。如果用戶界面管理設(shè)備確定(步驟408)系統(tǒng)狀態(tài)改變 信息沒有被接收,則用戶界面管理設(shè)備繼續(xù)監(jiān)視這樣的接收。盡管,如圖4所示的方法的示例性步驟中,只有在兩個用戶界面模塊間選擇,本領(lǐng)域普通技術(shù)人員會知道可以構(gòu)造多個用戶界面模塊, 每個系統(tǒng)狀態(tài)對應(yīng)一個用戶界面模塊。如此,基于系統(tǒng)狀態(tài)選擇(步 驟404)候選用戶界面模塊啟動,可以比簡單判斷是否工作站具有登錄 系統(tǒng)狀態(tài)更復(fù)雜。本申請上述實施例只是一些例子。改變、修改和變更可由本領(lǐng)域 技術(shù)人員實現(xiàn)于特定實施例,而包括在權(quán)利要求所規(guī)定的范圍內(nèi)。
權(quán)利要求
1、一種管理多個用戶界面的方法,所述方法包括檢測系統(tǒng)狀態(tài)從當(dāng)前系統(tǒng)狀態(tài)向新的系統(tǒng)狀態(tài)的改變;響應(yīng)所述檢測,向第一用戶界面模塊(114)發(fā)送狀態(tài)請求;接收來自所述第一用戶界面模塊(114)的狀態(tài)響應(yīng),所述狀態(tài)響應(yīng)包括控制狀態(tài)數(shù)據(jù)結(jié)構(gòu);及發(fā)送所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)到第二用戶界面模塊(116)。
2、 如權(quán)利要求l的方法,其中所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)包括從所 述第一用戶界面模塊(114)獲得的信息,所述信息被所述第二用戶界 面模塊(116)用來調(diào)節(jié)因此而生成的用戶界面。
3、 如權(quán)利要求1或2的方法,進一步包括從與所述第一用戶界面 模塊相關(guān)的線程地圖拷貝條目到與所述第二用戶界面模塊相關(guān)的線程 地圖。
4、 如權(quán)利要求3的方法,其中所述第一線程地圖存儲所述第一用戶界面模塊的線程所等待消息的特征。
5、 如權(quán)利要求4的方法,其中所述特征包括所述消息的類型。
6、 如權(quán)利要求4所述的方法,其中所述特征包括對消息發(fā)送對象 的參照,所述消息發(fā)送對象包括-指示所述消息是否已被接收的標(biāo)識; 所述線程應(yīng)該等待的事件;和 用于存儲在消息中接收的數(shù)據(jù)的數(shù)據(jù)域。
7、 如權(quán)利要求1到6其中任何一個的方法,其中所述控制狀態(tài)數(shù) 據(jù)結(jié)構(gòu)包括公開對話框的名稱的指示。
8、 如權(quán)利要求7的方法,其中所述控制狀態(tài)數(shù)據(jù)結(jié)構(gòu)包括在所述 公開對話框中域的內(nèi)容的指示。
9、 如權(quán)利要求1到8其中任何一個的方法,其中所述當(dāng)前系統(tǒng)狀 態(tài)是登錄。
10、 如權(quán)利要求9的方法,其中所述新的系統(tǒng)狀態(tài)是登出或鎖定。
11、 如權(quán)利要求1到8其中任何一個的方法,其中所述當(dāng)前系統(tǒng)狀 態(tài)是登出。
12、 如權(quán)利要求ll的方法,其中所述新的系統(tǒng)狀態(tài)是登錄。
13、 如權(quán)利要求1到8其中任何一個的方法,其中所述當(dāng)前系統(tǒng)狀 態(tài)是鎖定。
14、 如權(quán)利要求13的方法,其中所述新的系統(tǒng)狀態(tài)是登錄。
15、 一種管理多個用戶界面的計算設(shè)備,所述計算設(shè)備包括適用 于執(zhí)行權(quán)利要求1到14中任何一個方法的處理器。
16、 一種計算機可讀介質(zhì),包括計算機可執(zhí)行指令,當(dāng)所述指令 被處理器執(zhí)行時,使所述處理器執(zhí)行權(quán)利要求1到14中任何一個的方 法。
17、 一種管理計算設(shè)備上多個用戶界面的方法,所述方法包括-接收請求以啟動與Windows服務(wù)(112)相關(guān)的用戶界面模塊; 確定所述計算設(shè)備的的當(dāng)前系統(tǒng)狀態(tài);基于所述確定,從多個用戶界面模塊中選擇候選用戶界面模塊 (114, 116);啟動所述候選用戶界面模塊(114, 116); 接收向新系統(tǒng)狀態(tài)改變的指示;及取消所述候選用戶界面模塊(114, 116)當(dāng)前激活的線程。
18、 如權(quán)利要求17的方法,其中所述當(dāng)前系統(tǒng)狀態(tài)是登錄。
19、 如權(quán)利要求18的方法,其中所述新的系統(tǒng)狀態(tài)是登出或鎖定。
20、 如權(quán)利要求17的方法,其中所述當(dāng)前系統(tǒng)狀態(tài)是登出。
21、 如權(quán)利要求20的方法,其中所述新的系統(tǒng)狀態(tài)是登錄。
22、 如權(quán)利要求17的方法,其中所述當(dāng)前系統(tǒng)狀態(tài)是鎖定。
23、 如權(quán)利要求22的方法,其中所述新的系統(tǒng)狀態(tài)是登錄。
24、 如權(quán)利要求17到23其中任何一個的方法,其中所述候選用戶 界面模塊被合并到定制圖形標(biāo)識和認證庫中。
25、 一種管理多個用戶界面的計算設(shè)備,所述計算設(shè)備包括適用 于執(zhí)行權(quán)利要求17到24的任何一個方法的處理器。
26、 一種計算機可讀介質(zhì),包括計算機可執(zhí)行指令,當(dāng)所述指令 被計算設(shè)備中的處理器執(zhí)行時,使所述處理器執(zhí)行權(quán)利要求17到24中任何一個的方法。
全文摘要
用戶界面管理設(shè)備,插在Windows服務(wù)和在確定的系統(tǒng)狀態(tài)場景中與Windows服務(wù)通信的用戶界面模塊之間,能記錄Windows服務(wù)和每個用戶界面模塊之間的互動。所記錄的互動,與從用戶界面模塊收集來的信息一起,能聯(lián)合使用以便用戶與用戶界面模塊中的第一個的互動可在從一個系統(tǒng)狀態(tài)(例如登錄)切換到另一個系統(tǒng)狀態(tài)(例如鎖定)之后繼續(xù)與用戶界面模塊中的第二個互動。可替換地,響應(yīng)從一個系統(tǒng)狀態(tài)到另一個系統(tǒng)狀態(tài)的切換,用戶界面管理設(shè)備可簡單地停止用戶界面模塊的執(zhí)行,以便互動可在新的系統(tǒng)狀態(tài)中開始。
文檔編號G06F9/44GK101131641SQ200710182109
公開日2008年2月27日 申請日期2007年8月17日 優(yōu)先權(quán)日2006年8月17日
發(fā)明者尼爾·帕特里克·亞當(dāng)斯, 拉維·辛格, 理查德·保羅·西布利 申請人:捷訊研究有限公司