專利名稱:管理窗口的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改善的數(shù)據(jù)處理系統(tǒng),具體來(lái)說(shuō),涉及用于在數(shù)據(jù)處理系統(tǒng)中管理窗口的方法、設(shè)備和計(jì)算機(jī)指令。更具體來(lái)說(shuō),本發(fā)明提供了用于管理窗口在后臺(tái)模式和前臺(tái)模式之間的移動(dòng)的方法、設(shè)備和計(jì)算機(jī)指令。
背景技術(shù):
即時(shí)消息是一種在線聊天手段,可使用戶通過(guò)網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)實(shí)時(shí)地相互進(jìn)行通信和協(xié)作。即時(shí)消息通常在因特網(wǎng)上使用。即時(shí)消息應(yīng)用程序監(jiān)視和報(bào)告彼此將對(duì)方作為在線聯(lián)系人的用戶的狀態(tài)。此信息通常在一個(gè)窗口中呈現(xiàn)給用戶。即時(shí)消息應(yīng)用程序也常常被開展業(yè)務(wù)的用戶使用。通過(guò)利用即時(shí)消息,辦公用戶可以查看對(duì)方是否在線,當(dāng)所需的聯(lián)系人在線時(shí),便可以啟動(dòng)與同事或客戶的文本會(huì)話。
通常,利用即時(shí)消息應(yīng)用程序,用戶之間的通信是通過(guò)用戶選擇他們希望與其進(jìn)行通信的人的姓名來(lái)啟動(dòng)的。然后,用戶在對(duì)話框中鍵入消息,并按“發(fā)送”。這些消息將會(huì)立刻出現(xiàn)在另一個(gè)所選擇的收件人的計(jì)算機(jī)上。
直到現(xiàn)在,即時(shí)消息都是主要為家庭用戶而開發(fā)的,但家庭用戶和辦公用戶也同樣可以使用。即時(shí)消息可使某一單位在業(yè)務(wù)設(shè)置中部署和利用此“有需求”(“need-to-have”)技術(shù)。
雖然即時(shí)消息是一個(gè)有用工具,但是,當(dāng)用戶在對(duì)其他文檔進(jìn)行處理時(shí)將具有消息的窗口彈出容易分散人的注意力,并且令人煩的。例如,如果用戶正在使用字處理器應(yīng)用程序在一個(gè)文檔中輸入,并接收到即時(shí)消息,彈出式窗口會(huì)改變桌面的焦點(diǎn)。換句話說(shuō),字處理文檔前臺(tái)從移到后臺(tái),而彈出式窗口移到前臺(tái)。如果用戶在鍵入信息,此輸入常常被重定向到彈出式窗口,而不是輸入到該文檔。當(dāng)前,用戶可以設(shè)置“請(qǐng)勿打擾”或“離開”首選項(xiàng),以避免這種分心。然而,這種機(jī)制需要用戶交互才能激活。
此外,對(duì)于代表即時(shí)消息應(yīng)用程序中的不同聯(lián)系人的不同彈出式窗口,也可能會(huì)發(fā)生這樣的焦點(diǎn)變化。結(jié)果,用戶可能會(huì)鍵入不正確的消息,并將它發(fā)送到非希望的聯(lián)系人。使用“請(qǐng)勿打擾”或“離開”首選項(xiàng)是無(wú)效的,因?yàn)橐坏┯脩糸_始向聯(lián)系人發(fā)送消息,此狀態(tài)就會(huì)改變,就不再會(huì)防止將彈出式窗口呈現(xiàn)到前臺(tái)。對(duì)于其他窗口式應(yīng)用程序,也會(huì)發(fā)生焦點(diǎn)變化。如此,對(duì)于將窗口推向前臺(tái)的任何應(yīng)用程序,也可能會(huì)發(fā)生焦點(diǎn)變化。結(jié)果,除了即時(shí)消息應(yīng)用程序外,其他窗口式應(yīng)用程序也可能產(chǎn)生類似的問(wèn)題。
因此,有用于在數(shù)據(jù)處理系統(tǒng)中管理諸如彈出式窗口之類的窗口的改善的方法、設(shè)備和計(jì)算機(jī)指令是十分有利的。
發(fā)明內(nèi)容
本發(fā)明提供了用于在數(shù)據(jù)處理系統(tǒng)中管理前臺(tái)和后臺(tái)中的窗口的方法、設(shè)備和計(jì)算機(jī)指令。響應(yīng)接收在前臺(tái)中呈現(xiàn)彈出式窗口的請(qǐng)求,監(jiān)視緩沖區(qū)中的用戶輸入。就前臺(tái)中的應(yīng)用程序是否為可中斷的應(yīng)用程序作出判斷。如果沒有用戶輸入,并且如果識(shí)別的應(yīng)用程序是可中斷的應(yīng)用程序,則在前臺(tái)呈現(xiàn)彈出式窗口。
現(xiàn)在將參考附圖,只作為示例,對(duì)本發(fā)明進(jìn)行描述,其中圖1是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的可以在其中實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的圖形表示;圖2是圖1的可以在其中實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖;圖3是說(shuō)明根據(jù)本發(fā)明的優(yōu)選實(shí)施例的在管理窗口時(shí)使用的組件的圖表;圖4是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于處理將窗口移到前臺(tái)的請(qǐng)求的過(guò)程的流程圖;
圖5是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于處理窗口的過(guò)程的流程圖;圖6是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于執(zhí)行應(yīng)用程序活動(dòng)檢查的過(guò)程的流程圖;以及圖7是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于監(jiān)視用戶輸入的過(guò)程的流程圖。
具體實(shí)施例方式
現(xiàn)在參考附圖,具體來(lái)說(shuō),參考圖1,該圖根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述了其中可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的圖形表示。描述了計(jì)算機(jī)100,該計(jì)算機(jī)包括系統(tǒng)單元102、視頻顯示終端104、鍵盤106、可以包括軟盤驅(qū)動(dòng)器及其他類型的永久和可移動(dòng)存儲(chǔ)介質(zhì)的存儲(chǔ)設(shè)備108,以及鼠標(biāo)110。個(gè)人計(jì)算機(jī)100可以包括更多的輸入設(shè)備,例如,游戲桿、觸摸板、觸摸屏、跟蹤球、麥克風(fēng)等等。計(jì)算機(jī)100可以使用任何合適的計(jì)算機(jī)來(lái)實(shí)現(xiàn),如IBM eServer計(jì)算機(jī)或IntelliStation計(jì)算機(jī),它們都是位于紐約Armonk的IBM公司的產(chǎn)品(IntelliStation是IBM Corp的商標(biāo))。雖然所描述的表示顯示了計(jì)算機(jī),但是,本發(fā)明的其他實(shí)施例也可以以其他類型的數(shù)據(jù)處理系統(tǒng)(如網(wǎng)絡(luò)計(jì)算機(jī))來(lái)實(shí)現(xiàn)。優(yōu)選情況下,計(jì)算機(jī)100還包括圖形用戶界面(GUI),該界面可以通過(guò)駐留在計(jì)算機(jī)可讀取的介質(zhì)中的系統(tǒng)軟件在計(jì)算機(jī)100內(nèi)的操作中實(shí)現(xiàn)。
現(xiàn)在參考圖2,該圖顯示了在其中可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的計(jì)算機(jī)100的計(jì)算機(jī)的示例,其中,可以有實(shí)現(xiàn)本發(fā)明的進(jìn)程的代碼或指令。數(shù)據(jù)處理系統(tǒng)200使用外圍組件互連(PCI)本地總線體系結(jié)構(gòu)。雖然所描述的示例使用了PCI總線,但是也可以使用諸如加速圖形端口(AGP)和工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)之類的其他總線體系結(jié)構(gòu)。處理器202和主存儲(chǔ)器204通過(guò)PCI橋208連接到PCI本地總線206。PCI橋208還可以包括集成的存儲(chǔ)器控制器和處理器202的高速緩沖存儲(chǔ)器。到PCI本地總線206的更多的連接可以通過(guò)直接組件互連或通過(guò)插入式電路板來(lái)實(shí)現(xiàn)。在所描述的示例中,局域網(wǎng)(LAN)適配器210、小型計(jì)算機(jī)系統(tǒng)接口SCSI主機(jī)總線適配器212和擴(kuò)展總線接口214通過(guò)直接組件連接來(lái)連接到PCI本地總線206。相比之下,音頻適配器216、圖形適配器218和音頻/視頻適配器219通過(guò)插入到擴(kuò)展槽中的插入式電路板連接到PCI本地總線206。擴(kuò)展總線接口214為鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222和附加存儲(chǔ)器224提供了連接。SCSI主機(jī)總線適配器212為硬盤驅(qū)動(dòng)器226、磁帶驅(qū)動(dòng)器228和CD-ROM驅(qū)動(dòng)器230提供了連接。
操作系統(tǒng)在處理器202上運(yùn)行,用于協(xié)調(diào)圖2中的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各個(gè)組件,并對(duì)它們進(jìn)行控制。操作系統(tǒng)可以是諸如Microsoft Corporation所推出的Windows XP之類的市場(chǎng)上可買到的操作系統(tǒng)(Windows是Microsofi Corp的商標(biāo))。諸如Java之類的面向?qū)ο蟮某绦蛟O(shè)計(jì)系統(tǒng)可以與操作系統(tǒng)一起運(yùn)行,并提供從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用程序?qū)Σ僮飨到y(tǒng)的調(diào)用(“Java”是Sun Microsystems,Inc的商標(biāo))。操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)和應(yīng)用程序或程序的指令位于諸如硬盤驅(qū)動(dòng)器226之類的存儲(chǔ)設(shè)備上,并可以加載到主存儲(chǔ)器204中以供處理器202執(zhí)行。
那些精通本技術(shù)的普通人員將認(rèn)識(shí)到,圖2中的硬件可以隨實(shí)現(xiàn)方式不同而不同。除了圖2中所描述的硬件之外,還可以使用諸如flash只讀存儲(chǔ)器(ROM)、等效的非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)器之類的其他內(nèi)部硬件或外圍設(shè)備,或代替它們。此外,本發(fā)明的進(jìn)程還可以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
例如,數(shù)據(jù)處理系統(tǒng)200,如果可選地被配置為網(wǎng)絡(luò)計(jì)算機(jī),可以不必包括SCSI主機(jī)總線適配器212、硬盤驅(qū)動(dòng)器226、磁帶驅(qū)動(dòng)器228,以及CD-ROM 230。在這種情況下,計(jì)算機(jī),準(zhǔn)確地說(shuō),叫做客戶端計(jì)算機(jī),包括某種類型的網(wǎng)絡(luò)通信接口,如LAN適配器210、調(diào)制解調(diào)器222等等。作為另一個(gè)示例,數(shù)據(jù)處理系統(tǒng)200可以是被配置為不依賴于某種類型的網(wǎng)絡(luò)通信接口,不管數(shù)據(jù)處理系統(tǒng)200是否包括某種類型的網(wǎng)絡(luò)通信接口,都可以啟動(dòng)的獨(dú)立系統(tǒng)。作為另一個(gè)示例,數(shù)據(jù)處理系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA),該個(gè)人數(shù)字助理配置了ROM和/或flash ROM,以提供非易失性存儲(chǔ)器,用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)。
圖2中所描述的示例和上文描述的示例不對(duì)本發(fā)明的體系結(jié)構(gòu)作出限制。例如,除PDA的形式之外,數(shù)據(jù)處理系統(tǒng)200還可以是筆記本電腦或手持式計(jì)算機(jī)。數(shù)據(jù)處理系統(tǒng)200還可以是kiosk或Web設(shè)備。
本發(fā)明的進(jìn)程由處理器202使用計(jì)算機(jī)實(shí)現(xiàn)的指令來(lái)執(zhí)行,指令可以位于諸如主存儲(chǔ)器204、存儲(chǔ)器224之類的存儲(chǔ)器中,也可以位于一個(gè)或多個(gè)外圍設(shè)備226-230中。
本發(fā)明提供了一種用于在數(shù)據(jù)處理系統(tǒng)中管理窗口的方法、設(shè)備和計(jì)算機(jī)指令。具體來(lái)說(shuō),本發(fā)明的機(jī)制監(jiān)視諸如鍵盤緩沖區(qū)或某些其他設(shè)備的輸入緩沖區(qū)之類的緩沖系統(tǒng)中的用戶輸入。此監(jiān)視是響應(yīng)將窗口從后臺(tái)移到后臺(tái)或在前臺(tái)呈現(xiàn)窗口的請(qǐng)求而啟動(dòng)的。如果用戶正在積極地輸入信息,此用戶輸入作為正在被監(jiān)視的緩沖區(qū)內(nèi)的活動(dòng)或輸入數(shù)據(jù)而顯示出來(lái)。如果活動(dòng)不存在,那么,可以將窗口移到前臺(tái)或呈現(xiàn)于前臺(tái)。如果活動(dòng)存在,那么,會(huì)忽略將窗口移到前臺(tái)的請(qǐng)求。當(dāng)活動(dòng)不再存在時(shí),窗口可以在稍后的時(shí)間移到前臺(tái)。
此外,本發(fā)明的機(jī)制也可以檢查應(yīng)用程序的列表,以查看前臺(tái)中的應(yīng)用程序是否為可以被中斷或移到后臺(tái)模式的應(yīng)用程序。在這些示例中,檢查是否有活動(dòng)或用戶輸入存在于緩沖系統(tǒng)中。如果緩沖系統(tǒng)中沒有活動(dòng)并且應(yīng)用程序不能被中斷,則窗口不會(huì)被移到前臺(tái)。如果緩沖系統(tǒng)中沒有活動(dòng)并且前臺(tái)中的應(yīng)用程序可以被中斷,則窗口可以在稍后的時(shí)間移到前臺(tái)。對(duì)于諸如即時(shí)消息應(yīng)用程序之類的應(yīng)用程序(其中,大量的活動(dòng)可以導(dǎo)致諸如彈出式窗口之類的許多窗口在不同的時(shí)間被移到前臺(tái)),這些機(jī)制特別有用。
如此,本發(fā)明的機(jī)制提供了基于將窗口移到前臺(tái)的請(qǐng)求提供了避免焦點(diǎn)中斷的方式,這可能不是用戶選擇的。相對(duì)于即時(shí)消息應(yīng)用程序可用的目前可用的“請(qǐng)勿打擾”和“離開”機(jī)制,此機(jī)制具有優(yōu)越性。
下面將參考圖3,該圖描述了說(shuō)明根據(jù)本發(fā)明的優(yōu)選實(shí)施例的在管理窗口時(shí)使用的組件的圖表。此圖中說(shuō)明的不同的組件可以在諸如圖2中的數(shù)據(jù)處理系統(tǒng)200之類的數(shù)據(jù)處理系統(tǒng)上執(zhí)行。
在此示例中,操作系統(tǒng)300控制應(yīng)用程序302、應(yīng)用程序304和即時(shí)消息應(yīng)用程序306的執(zhí)行。在這些示例中,諸如應(yīng)用程序302之類的一個(gè)應(yīng)用程序在執(zhí)行前臺(tái),而諸如應(yīng)用程序304和應(yīng)用程序306之類的其他應(yīng)用程序在后臺(tái)執(zhí)行。在執(zhí)行前臺(tái)的應(yīng)用程序是其中應(yīng)用程序的窗口是可見的并且當(dāng)前正在執(zhí)行工作或指令的應(yīng)用程序。這樣的應(yīng)用程序也是可以在焦點(diǎn)上的應(yīng)用程序。換句話說(shuō),如果一個(gè)應(yīng)用程序正在接受當(dāng)前的鍵盤輸入,則該應(yīng)用程序處于焦點(diǎn)上。在后臺(tái)執(zhí)行的應(yīng)用程序是其窗口當(dāng)前不可見并且不在焦點(diǎn)上的應(yīng)用程序。如圖所示,窗口308與應(yīng)用程序302關(guān)聯(lián),窗口310與應(yīng)用程序304關(guān)聯(lián),窗口312與即時(shí)消息應(yīng)用程序306關(guān)聯(lián)。在此示例中,窗口312是彈出式窗口。如果由即時(shí)消息應(yīng)用程序306接收到諸如消息314之類的消息,則一個(gè)請(qǐng)求被即時(shí)消息應(yīng)用程序306發(fā)送到操作系統(tǒng)300以將窗口312移到到前臺(tái),這將導(dǎo)致窗口308被移到后臺(tái)。此請(qǐng)求被插入到請(qǐng)求隊(duì)列316中,以便讓操作系統(tǒng)300進(jìn)行處理。
在這些示例中,操作系統(tǒng)300包括用于監(jiān)視緩沖系統(tǒng)318中的用戶輸入活動(dòng)的過(guò)程或機(jī)制。如圖所示,緩沖系統(tǒng)318可以包括一個(gè)或多個(gè)緩沖區(qū)。這些緩沖區(qū)可以是,鍵盤緩沖區(qū)、聲音輸入緩沖區(qū),midi鍵盤緩沖區(qū)或鼠標(biāo)輸入緩沖區(qū)。
如果沒有檢測(cè)到活動(dòng),則本發(fā)明的機(jī)制可以將窗口312移到前臺(tái)。在這些示例中,該機(jī)制執(zhí)行另外的檢查。在此檢查中,識(shí)別與前臺(tái)中的窗口關(guān)聯(lián)的應(yīng)用程序(應(yīng)用程序302),并將其與諸如應(yīng)用程序列表320之類的應(yīng)用程序的列表進(jìn)行比較。此列表包含已經(jīng)被指定為不可中斷的應(yīng)用程序或應(yīng)該被給予優(yōu)先級(jí)的應(yīng)用程序的標(biāo)識(shí)。如果在應(yīng)用程序列表320中發(fā)現(xiàn)應(yīng)用程序302,那么,窗312不會(huì)被移到前臺(tái)。相反,再次在稍晚某個(gè)時(shí)間再次進(jìn)行檢查,以判斷緩沖系統(tǒng)318中是否有用戶輸入存在,以及前臺(tái)中的應(yīng)用程序是否存在于應(yīng)用程序列表320中。如果都不存在,則可以將窗口312移到前臺(tái)。
在這些示例中,應(yīng)用程序列表320是由用戶生成的。用戶可以設(shè)置或復(fù)位作為識(shí)別在運(yùn)行時(shí)不應(yīng)該被干擾的應(yīng)用程序的過(guò)濾器的了列表318中的應(yīng)用程序標(biāo)題。這樣的特點(diǎn)對(duì)于諸如全屏幕應(yīng)用程序之類的應(yīng)用程序很有用。在某些情況下,這些應(yīng)用程序類型可能不能從前臺(tái)和后臺(tái)之間的切換中恢復(fù)。此外,在這些示例中,用戶也可以選擇或設(shè)置計(jì)時(shí)器以指出在允許窗口被從后臺(tái)前臺(tái)移到之前,他們需要緩沖系統(tǒng)包含沒有用戶輸入或活動(dòng)的時(shí)間長(zhǎng)度。此外,在這些示例中,用于管理窗口的進(jìn)程是在操作系統(tǒng)300內(nèi)實(shí)現(xiàn)的。本發(fā)明的機(jī)制的這些進(jìn)程可以位于其他組件內(nèi),具體情況取決于特定的實(shí)施方式。例如,進(jìn)程可以在即時(shí)消息應(yīng)用程序306內(nèi)實(shí)現(xiàn)。
下面請(qǐng)參看圖4,該圖描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于處理將窗口移到前臺(tái)的請(qǐng)求的過(guò)程的流程圖。該過(guò)程從接收將窗口移到前臺(tái)的應(yīng)用程序請(qǐng)求開始(步驟400)。此前臺(tái)請(qǐng)求被推到諸如圖3中的請(qǐng)求隊(duì)列316之類的隊(duì)列上(步驟402),此后,該過(guò)程終止。
現(xiàn)在參考圖5,該圖描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的用于處理窗口的過(guò)程的流程圖。圖5中說(shuō)明的過(guò)程可以在諸如圖3中的操作系統(tǒng)300之類的軟件組件中實(shí)現(xiàn)。
該過(guò)程從判斷是否接收到了前臺(tái)請(qǐng)求開始(步驟500)。此步驟可以通過(guò)檢查諸如圖3中的請(qǐng)求隊(duì)列316之類的請(qǐng)求隊(duì)列來(lái)執(zhí)行。如果不存在請(qǐng)求,則該過(guò)程等待隊(duì)列上的前臺(tái)請(qǐng)求(步驟502),然后,該過(guò)程返回到步驟500。當(dāng)在隊(duì)列上檢測(cè)到請(qǐng)求時(shí),從隊(duì)列中彈出事件(步驟504)。換句話說(shuō),選擇位于隊(duì)列頂部的事件進(jìn)行處理。
就當(dāng)前執(zhí)行的應(yīng)用程序是否位于諸如圖3中的應(yīng)用程序列表320之類的列表中作出判斷(步驟506)。此步驟可以通過(guò)調(diào)用一個(gè)進(jìn)程以執(zhí)行應(yīng)用程序活動(dòng)檢查來(lái)執(zhí)行。下面將描述的圖6中說(shuō)明的過(guò)程是步驟505的比較詳細(xì)的描述。如果應(yīng)用程序位于列表上,那么,該進(jìn)程等待應(yīng)用程序切換(步驟508)。在觸發(fā)的應(yīng)用程序的情況下,當(dāng)應(yīng)用程序不再忙時(shí),這樣的應(yīng)用程序可以通知或向請(qǐng)求隊(duì)列指出。觸發(fā)的應(yīng)用程序是可能接收到如應(yīng)用程序是否可以從前臺(tái)移到后臺(tái)的請(qǐng)求的應(yīng)用程序。在這樣的情況下,應(yīng)用程序?qū)⒅赋鏊欠衩χ约笆欠癫荒芤苿?dòng),或它是否可以移動(dòng)。此后,該過(guò)程返回到如上所述的步驟506。
如果在步驟506中當(dāng)前執(zhí)行的應(yīng)用程序不在列表中,那么,就是否存在活動(dòng)用戶輸入而作出判斷(步驟512)??梢酝ㄟ^(guò)檢查諸如緩沖系統(tǒng)313之類的緩沖系統(tǒng)來(lái)檢測(cè)用戶輸入。如上所述,對(duì)于不同類型的用戶輸入,此緩沖系統(tǒng)可以包含一個(gè)或多個(gè)緩沖區(qū)。在此示例中,通過(guò)檢查通過(guò)一個(gè)進(jìn)程設(shè)置的變量(如下面的圖7中描述的那個(gè)),可以進(jìn)行緩沖系統(tǒng)檢查。
如果存在活動(dòng)用戶輸入,則過(guò)程等待輸入停止(步驟514)。用戶可以選擇活動(dòng)計(jì)時(shí)器,該計(jì)時(shí)器指出在輸入停止之前,在緩沖系統(tǒng)內(nèi)沒有用戶輸入必須持續(xù)的時(shí)間長(zhǎng)度。當(dāng)輸入停止時(shí),該過(guò)程返回到步驟506,以上文所描述的方式對(duì)照應(yīng)用程序列表檢查當(dāng)前執(zhí)行的應(yīng)用程序。
再次參考步驟512,如果沒有活動(dòng)用戶存在,則過(guò)程打開前臺(tái)窗口(步驟510),那么,過(guò)程返回到如上所述的步驟500。這將打開一個(gè)新的窗口,或?qū)?yīng)用程序的窗口從后臺(tái)移到前臺(tái)。
現(xiàn)在請(qǐng)看圖6,該圖根據(jù)本發(fā)明的優(yōu)選實(shí)施例,描述了用于執(zhí)行應(yīng)用程序活動(dòng)檢查的過(guò)程的流程圖。圖6中說(shuō)明的過(guò)程是圖5中的步驟506的比較詳細(xì)的描述。
該過(guò)程從檢查用戶“請(qǐng)勿打擾”列表以判斷當(dāng)前執(zhí)行的應(yīng)用程序是否位于列表上開始(步驟600)。此列表是諸如圖3中的應(yīng)用程序列表320之類的列表。如果應(yīng)用程序位于列表上,則返回一個(gè)忙的指示(步驟602),此后,該過(guò)程終止。
再次參考步驟600,如果應(yīng)用程序不在列表中,則進(jìn)行進(jìn)一步檢查,以判斷是否觸發(fā)了應(yīng)用程序(步驟604)。換句話說(shuō),此步驟進(jìn)行測(cè)試,以查看是否觸發(fā)了前臺(tái)中的應(yīng)用程序,以允許應(yīng)用程序作出當(dāng)前活動(dòng)的請(qǐng)求。某些應(yīng)用程序可能接收到關(guān)于它們是否可以從前臺(tái)移到后臺(tái)的問(wèn)題或請(qǐng)求。
如果觸發(fā)了應(yīng)用程序,那么,一個(gè)請(qǐng)求將會(huì)被發(fā)送到應(yīng)用程序(步驟606)。接收到一個(gè)響應(yīng),并返回一個(gè)忙或不忙的指示,具體情況取決于響應(yīng)(步驟608),此后終止該過(guò)程。再次參考步驟604,如果沒有觸發(fā)應(yīng)用程序,則返回一個(gè)不忙指示(步驟610)。
現(xiàn)在參考圖7,該圖根據(jù)本發(fā)明的優(yōu)選實(shí)施例,描述了用于監(jiān)視用戶輸入的過(guò)程的流程圖。圖7中說(shuō)明的過(guò)程可以在諸如圖3中的操作系統(tǒng)300之類的軟件組件中實(shí)現(xiàn)。在此示例中,該過(guò)程是連續(xù)地執(zhí)行以更新圖5中的步驟512檢查的變量的后臺(tái)進(jìn)程。
該過(guò)程從在操作系統(tǒng)中設(shè)置一個(gè)標(biāo)志開始,以接收用戶輸入的通知(步驟700)。然后,就用戶是否正在輸入數(shù)據(jù)作出判斷(步驟702)。此步驟涉及監(jiān)視諸如圖3中的緩沖系統(tǒng)318之類的緩沖系統(tǒng)。
如果用戶正在輸入數(shù)據(jù),那么,將變量設(shè)置為當(dāng)前忙(步驟704)。然后,過(guò)程等待用戶定義的超時(shí)發(fā)生(步驟706)。在超時(shí)發(fā)生之后,過(guò)程返回到步驟702。
回到步驟702,如果用戶不在輸入數(shù)據(jù),則過(guò)程將變量設(shè)置為不忙(步驟708),然后等待檢測(cè)到用戶輸入(步驟710)。在檢測(cè)到用戶輸入之后,過(guò)程從步驟710進(jìn)入到步驟704。
如此,該過(guò)程提供了用于在數(shù)據(jù)處理系統(tǒng)管理窗口的改善的方法、設(shè)備,以及計(jì)算機(jī)指令。此機(jī)制適用于其中窗口可以從后臺(tái)移到前臺(tái)或其中窗口可以呈現(xiàn)于前臺(tái)的任何系統(tǒng)。該機(jī)制監(jiān)視緩沖系統(tǒng)中的用戶輸入,以及檢查當(dāng)前執(zhí)行的應(yīng)用程序,以查看此應(yīng)用程序是否可以被中斷或移到后臺(tái)。
如此,本發(fā)明的機(jī)制在應(yīng)用程序可能不能從移動(dòng)恢復(fù)時(shí)避免了將用戶的焦點(diǎn)從當(dāng)前任務(wù)移開,并避免將應(yīng)用程序從前臺(tái)移到后臺(tái)。對(duì)于異步彈出式窗口,如在即時(shí)消息應(yīng)用程序中使用的窗口,此機(jī)制特別有用。
值得注意的是,盡管是在完全運(yùn)轉(zhuǎn)的數(shù)據(jù)處理系統(tǒng)的上下文中描述本發(fā)明的,但是,那些精通本技術(shù)的普通人員將認(rèn)識(shí)到,本發(fā)明的進(jìn)程能夠以存儲(chǔ)了指令的計(jì)算機(jī)可讀的介質(zhì)的形式和各種各樣的形式進(jìn)行分發(fā),本發(fā)明同樣適用,不管實(shí)際用于進(jìn)行分發(fā)的承載信號(hào)的介質(zhì)的特定類型是什么。計(jì)算機(jī)可讀的介質(zhì)的示例包括可記錄類型的介質(zhì),如軟盤、硬盤驅(qū)動(dòng)器、RAM、CD-ROM、DVD-ROM、傳輸類型的介質(zhì),例如使用諸如射頻和光波發(fā)射的發(fā)射形式的數(shù)字和模擬通信鏈路、有線或無(wú)線通信鏈路。計(jì)算機(jī)可讀的介質(zhì)可以采取編碼格式的形式,這些編碼在特定數(shù)據(jù)處理系統(tǒng)中實(shí)際使用時(shí)被解碼。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)中的用于管理前臺(tái)和后臺(tái)中的窗口的方法,該方法包括響應(yīng)接收將彈出式窗口從后臺(tái)移到前臺(tái)的請(qǐng)求,判斷用戶輸入是否存在于緩沖區(qū)中;如果用戶輸入存在于緩沖區(qū)中,則忽略將彈出式窗口從后臺(tái)移到前臺(tái)的請(qǐng)求;以及如果用戶輸入在緩沖區(qū)中不存在,則將彈出式窗口從后臺(tái)移到前臺(tái)。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括響應(yīng)沒有用戶輸入的情況,識(shí)別正在執(zhí)行前臺(tái)的應(yīng)用程序以形成識(shí)別的應(yīng)用程序;判斷識(shí)別的應(yīng)用程序是否為不可中斷的應(yīng)用程序;以及如果識(shí)別的應(yīng)用程序?yàn)椴豢芍袛嗟膽?yīng)用程序,則防止將彈出式窗口從后臺(tái)移到前臺(tái)。
3.根據(jù)權(quán)利要求2所述的方法,其中,判斷步驟包括將識(shí)別的應(yīng)用程序與不可中斷的應(yīng)用程序列表進(jìn)行比較;以及如果識(shí)別的應(yīng)用程序與不可中斷的應(yīng)用程序列表中的應(yīng)用程序相匹配,則將識(shí)別的應(yīng)用程序識(shí)別為不可中斷的應(yīng)用程序。
4.根據(jù)權(quán)利要求3所述的方法,其中,不可中斷的應(yīng)用程序的列表是用戶生成的。
5.根據(jù)權(quán)利要求1所述的方法,其中,彈出式窗口是異步彈出式窗口。
6.根據(jù)權(quán)利要求1所述的方法,其中,彈出式窗口用于即時(shí)消息應(yīng)用程序。
7.根據(jù)權(quán)利要求1所述的方法,其中,緩沖區(qū)是鍵盤緩沖區(qū)和鼠標(biāo)輸入緩沖區(qū)中的至少一個(gè)。
8.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括如果用戶活動(dòng)存在于緩沖區(qū)中,則在用戶選擇的時(shí)間段之后重新啟動(dòng)判斷步驟。
9.一種數(shù)據(jù)處理系統(tǒng)中的用于管理前臺(tái)和后臺(tái)中的窗口的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括監(jiān)視裝置,響應(yīng)接收將彈出式窗口從后臺(tái)移到前臺(tái)的請(qǐng)求,用于判斷用戶輸入是否存在于緩沖區(qū)中;忽略裝置,用于如果用戶輸入存在于緩沖區(qū)中,則忽略將彈出式窗口從后臺(tái)移到前臺(tái)的請(qǐng)求;以及移動(dòng)裝置,用于如果用戶輸入在緩沖區(qū)中不存在,則將彈出式窗口從后臺(tái)移到前臺(tái)。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),進(jìn)一步包括識(shí)別裝置,響應(yīng)沒有用戶輸入的情況,識(shí)別正在執(zhí)行前臺(tái)的應(yīng)用程序以形成識(shí)別的應(yīng)用程序;判斷裝置,用于判斷識(shí)別的應(yīng)用程序是否為不可中斷的應(yīng)用程序;以及防止裝置,用于如果識(shí)別的應(yīng)用程序?yàn)椴豢芍袛嗟膽?yīng)用程序,則防止將彈出式窗口從后臺(tái)移到前臺(tái)。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其中,判斷裝置包括比較裝置,用于將識(shí)別的應(yīng)用程序與不可中斷的應(yīng)用程序列表進(jìn)行比較;以及識(shí)別裝置,用于如果識(shí)別的應(yīng)用程序與不可中斷的應(yīng)用程序列表中的應(yīng)用程序相匹配,則將識(shí)別的應(yīng)用程序識(shí)別為不可中斷的應(yīng)用程序。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,不可中斷應(yīng)用程序的列表是用戶生成的。
13.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,彈出式窗口是異步彈出式窗口。
14.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,彈出式窗口用于即時(shí)消息應(yīng)用程序。
15.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,緩沖區(qū)是鍵盤緩沖區(qū)和鼠標(biāo)輸入緩沖區(qū)中的至少一個(gè)。
16.一種計(jì)算機(jī)程序,包括計(jì)算機(jī)程序代碼裝置,用于執(zhí)行權(quán)利要求1到權(quán)利要求8中的任何一個(gè)權(quán)利要求所述的步驟。
全文摘要
用于在數(shù)據(jù)處理系統(tǒng)中管理前臺(tái)和后臺(tái)中的窗口的方法、設(shè)備和計(jì)算機(jī)指令。響應(yīng)接收在前臺(tái)中呈現(xiàn)彈出式窗口的請(qǐng)求,監(jiān)視緩沖區(qū)中的用戶輸入。就前臺(tái)中的應(yīng)用程序是否為可中斷的應(yīng)用程序作出判斷。如果沒有用戶輸入,并且如果識(shí)別的應(yīng)用程序是可中斷的應(yīng)用程序,則在前臺(tái)呈現(xiàn)彈出式窗口。
文檔編號(hào)G06F3/033GK1739088SQ200480002428
公開日2006年2月22日 申請(qǐng)日期2004年3月5日 優(yōu)先權(quán)日2003年3月27日
發(fā)明者戴維·郎戴爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司