專利名稱:桌面切換方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種桌面切換方法和裝置。
背景技術(shù):
隨著計算機(jī)的普及,越來越多的人都在使用計算機(jī),計算機(jī)已經(jīng)成為普通民眾日常生活中不可缺少的工具之一。對于大部分的計算機(jī)用戶來說,操作系統(tǒng)的桌面無疑是最便捷的操作入口。用戶 通常將應(yīng)用圖標(biāo),如軟件圖標(biāo)或文件,放置在桌面,并通過桌面啟動軟件或打開文件等。久而久之,桌面就會變得越來越混亂。對于大部分的普通用戶來說,并不是很清楚該如何去清理桌面。在這樣的背景下,催生了很多桌面管理軟件,比如360安全桌面,但是這些桌面管理軟件更多的定位是桌面編輯軟件,允許用戶通過這些軟件對桌面進(jìn)行管理,對桌面上的軟件圖標(biāo)或文件進(jìn)行編輯或分類等操作。綜上所述,現(xiàn)有的桌面管理軟件允許用戶對一個桌面中的應(yīng)用圖標(biāo)進(jìn)行管理,但是,眾多的應(yīng)用圖標(biāo)放置在一個桌面中,容易混淆,用戶通過桌面使用應(yīng)用時仍然不是很便捷。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種桌面切換方法和裝置。所述技術(shù)方案如下一種桌面切換方法,所述方法包括生成第一桌面窗口 ;根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置;檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)所述觸發(fā)指令對應(yīng)的觸發(fā)事件;監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。一種桌面切換裝置,所述裝置包括框架入口模塊,用于生成第一桌面窗口 ;根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置;??靠刂破鳎糜跈z測用戶切換桌面的觸發(fā)指令,并觸發(fā)所述觸發(fā)指令對應(yīng)的觸發(fā)事件;桌面管理器,用于監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是通過生成第一桌面窗口,根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置,檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)該觸發(fā)指令對應(yīng)的觸發(fā)事件,監(jiān)聽到觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換,實現(xiàn)了兩個桌面窗口之間的切換,用戶可以根據(jù)自己對應(yīng)用的需要,選擇合適的桌面,并使用桌面中的應(yīng)用。
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例中提供的桌面管理的系統(tǒng)架構(gòu)示意圖;圖2是本發(fā)明實施例中提供的架構(gòu)平臺示意圖;圖3是本發(fā)明實施例中提供的桌面切換方法流程圖;圖4是本發(fā)明實施例中提供的加載某一應(yīng)用的信息交互圖; 圖5是本發(fā)明實施例中提供的桌面切換裝置結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例中提供的桌面切換裝置另一結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明實施例提供了一種桌面管理的系統(tǒng),其架構(gòu)示意圖參見圖I所示,該系統(tǒng)主要包括數(shù)據(jù)服務(wù)模塊,框架平臺,以及應(yīng)用擴(kuò)展模塊??蚣芷脚_負(fù)責(zé)搭建第一桌面窗口的框架,第一桌面窗口在本發(fā)明中可以是Q+桌面窗口 ;還負(fù)責(zé)根據(jù)數(shù)據(jù)服務(wù)模塊提供的數(shù)據(jù)進(jìn)行界面的展示,同時提供本平臺的API (Application Programming Interface,應(yīng)用程序編程接口)給應(yīng)用擴(kuò)展模塊以實現(xiàn)各個應(yīng)用;還負(fù)責(zé)加載應(yīng)用,桌面的管理,與第二桌面窗口的切換等,其中,第二桌面窗口在本發(fā)明中可以是windows桌面窗口。參見圖2,架構(gòu)平臺包括應(yīng)用加載器(AppLoader)、任務(wù)管理器(TaskManager)、桌面管理器(DesktopMgr)、??靠刂破?Dockbar)、以及第一桌面窗口(如Q+桌面窗口)。應(yīng)用擴(kuò)展模塊,負(fù)責(zé)使用框架平臺提供的API實現(xiàn)一個個具體的應(yīng)用,每個應(yīng)用都有一個應(yīng)用標(biāo)識,并將應(yīng)用注冊到框架平臺中來,之后在框架平臺下可以使用該應(yīng)用。數(shù)據(jù)服務(wù)模塊,主要負(fù)責(zé)提供數(shù)據(jù)訪問接口給框架平臺使用,與服務(wù)器的交互,向服務(wù)器存取數(shù)據(jù),并保持?jǐn)?shù)據(jù)與服務(wù)器的同步;通過數(shù)據(jù)服務(wù)模塊,保證了用戶的數(shù)據(jù)都存在于服務(wù)器,可以實現(xiàn)用戶數(shù)據(jù)的漫游。另外,該系統(tǒng)還包括框架入口模塊和服務(wù)器。框架入口模塊負(fù)責(zé)整個框架的初始化、加載、啟動、退出,還負(fù)責(zé)軟件單實例控制,命令行參數(shù)解析,軟件升級等。在本發(fā)明中,框架入口模塊具體可以是第一桌面窗口(如Q+桌面窗口)的入口。服務(wù)器負(fù)責(zé)用戶驗證,數(shù)據(jù)存儲和讀取等邏輯。基于上述系統(tǒng),本發(fā)明實施例還提供了一種桌面切換方法,參見圖3,該方法包括101 :生成第一桌面窗口 ;其中,本步驟具體可以由框架入口模塊執(zhí)行。
102 :根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置;其中,本步驟具體可以由框架入口模塊執(zhí)行。本實施例提供了至少兩種設(shè)置方法第一種設(shè)置方法,第一桌面窗口與第二桌面窗口是并列關(guān)系,包括步驟102al-102a2,進(jìn)一步還可以包括102a3或102a4,具體如下102al :將第一桌面窗口設(shè)置為頂層窗口 ;其中,將第一桌面窗口設(shè)置為頂層窗口,具體可以通過將第一桌面窗口的父窗口設(shè)置為無(NULL)實現(xiàn)。進(jìn)一步的,對第一桌面窗口進(jìn)行以下處理去掉標(biāo)題(Title)屬性,保留窗口客戶區(qū);加上工具窗口(toolwindow)屬性,去掉窗口任務(wù)欄顯示;將窗口大小設(shè)置成屏幕桌面的尺寸。102a2 :設(shè)置第一桌面窗口覆蓋在第二桌面窗口之上,并且位于應(yīng)用程序?qū)?yīng)的普通窗口之下;其中,設(shè)置第一桌面窗口覆蓋在第二桌面窗口之上,具體包括使用設(shè)置窗口順序的函數(shù)對窗口的順序進(jìn)行設(shè)置,在該函數(shù)中指定需要設(shè)置的窗口為第一桌面窗口,并在該函數(shù)中設(shè)置第一桌面窗口的順序為在第二桌面窗口之上,并且位于應(yīng)用程序?qū)?yīng)的普通窗口之下。根據(jù)第一桌面窗口和第二桌面窗口的具體類型,設(shè)置窗口順序的函數(shù)可以各不相同,本實施例并不限定具體的設(shè)置窗口順序的函數(shù)。當(dāng)?shù)诙烂娲翱谑莣indows桌面窗口,第一桌面窗口是Q+桌面窗口時,具體可以采用如下函數(shù)實現(xiàn)SetffindowPos (hQPlusffindow, HWND_B0TT0M, O, O, width, height, O);第一個參數(shù)表示窗口句柄,本實施例中第一個參數(shù)為第一桌面窗口 hQPlusWindow,即Q+桌面窗口。第二個參數(shù)表示排列順序的句柄,本實施例中第二個參數(shù)為HWND_BOTTOM,表示將窗口置于Z序的底部。進(jìn)一步的,該函數(shù)還包括其他參數(shù),第三個參數(shù)和第四個參數(shù)分別表示水平坐標(biāo)和垂直坐標(biāo);第五個參數(shù)和第六個參數(shù)分別表示寬和高;第七個參數(shù)表示窗口定位標(biāo)識。其中,應(yīng)用程序?qū)?yīng)的普通窗口可以是QQ窗口等。102a3 :設(shè)置第一桌面窗口在響應(yīng)第一桌面窗口的窗口消息時,返回?zé)o激活消息(MA_N0ACTIVATE),從而在用戶觸發(fā)第一桌面窗口時,第一桌面窗口仍位于普通窗口之下,不會被激活到普通窗口之上;102a4:設(shè)置第一桌面窗口上的所有子控件都是繪制且無窗口化的,從而在用戶觸發(fā)第一桌面窗口的子控件時,第一桌面窗口仍位于普通窗口之下,不會被激活到普通窗口之上;需要說明的是,第二桌面窗口上的所有子控件可以是窗口化的。第二種設(shè)置方法,第一桌面窗口是第二桌面窗口的子窗口,包括步驟102bl-102b2,具體如下102bl :查找第二桌面窗口 ;具體的,可以使用查找窗口的函數(shù)直接查找第二桌面窗口 ;或者,利用第二桌面窗口的孩子窗口查找第二桌面窗口,具體包括使用查找窗口的函數(shù)查找到某一窗口,判斷第二桌面窗口的孩子是否是查找到的窗口的孩子,如果是,則查找到的窗口是第二桌面窗口,查找過程結(jié)束,如果不是,使用查找與指定窗口有特定關(guān)系的窗口函數(shù)繼續(xù)查找窗口,并進(jìn)行上述判斷,直至查找到第二桌面窗口,查找過程結(jié)束。第二桌面窗口具體可以是windows桌面窗口。一般而言,系統(tǒng)桌面的名稱為PiOgman。則查找第二桌面窗口具體可以采用以下方法在windows XP 下,通過 FindWindow(" Progman" , NULL)就可以找到系統(tǒng)桌面。在windows 7下,由于有一個用來支持動態(tài)背景的名叫WorkerW的窗口可能會混淆查找到真正的系統(tǒng)桌面,而真正的系統(tǒng)桌面上有一個名叫SHELLDLL_DefVieW的孩子窗口,用來顯示快捷方式圖標(biāo),因此查找真正的系統(tǒng)桌面方法如下al、HWND hffnd = Find Window (" Progman" , NULL),判斷 SHELLDLL_DefView 是否是hWnd的孩子,如果是,查找結(jié)束,否則進(jìn)入第a2步;a2、hWnd = Getffindow (hffnd, Gff_HWNDNEXT),判斷 SHELLDLL_DEFView 是否·是 hWnd的孩子,如果是,查找結(jié)束;否則繼續(xù)執(zhí)行第a2步。其中,F(xiàn)ind Window函數(shù)返回與指定字符串相匹配的窗口類名或窗口名的最頂層窗口的窗口句柄,這個函數(shù)不會查找子窗口。Get Window函數(shù)返回與指定窗口有特定關(guān)系(如Z序或所有者)的窗口句柄。102b2 :將第一桌面窗口設(shè)置為第二桌面窗口的子窗口。具體的,通過該第二桌面窗口的句柄,將該第一桌面窗口設(shè)置為該第二桌面窗口的子窗口。其中,用戶可以根據(jù)自己的需要,在第一桌面窗口和第二桌面窗口中放置不同的應(yīng)用圖標(biāo),以便于用戶在不同的桌面窗口分別啟用不同的應(yīng)用。當(dāng)然,也可以在第一桌面窗口和第二桌面窗口放置全部相同或部分相同的應(yīng)用。103 :檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)該觸發(fā)指令對應(yīng)的觸發(fā)事件;其中,本步驟具體可以由??靠刂破鲌?zhí)行。停靠控制器浮動在屏幕的最上方,同時存在于第一桌面窗口(如Q+桌面窗口)和第二桌面窗口(如windows桌面窗口)上。其中,觸發(fā)指令可以是點(diǎn)擊操作,移動操作或停留時間等,本實施例并不限定具體的觸發(fā)指令。104:監(jiān)聽到該觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。其中,本步驟具體可以由桌面管理器執(zhí)行。對于第一種設(shè)置方法,即第一桌面窗口與第二桌面窗口是并列關(guān)系時,桌面切換過程為監(jiān)聽到該觸發(fā)事件之后,抓取第一桌面和第二桌面的截圖,將第一桌面截圖和第二桌面截圖拼接成一個并列的截圖;如果當(dāng)前桌面窗口是第二桌面,通過動畫方式擠去第二桌面,并將第一桌面顯示在第一桌面窗口 ;或者,如果當(dāng)前桌面窗口是第一桌面,通過動畫方式擠去第一桌面,并將第二桌面顯示在第二桌面窗口。對于第二種設(shè)置方法,即第一桌面窗口是第二桌面窗口的子窗口時,桌面切換過程為監(jiān)聽到該觸發(fā)事件之后,如果當(dāng)前桌面窗口是第二桌面窗口,通知該第一桌面窗口在該第二桌面窗口進(jìn)行顯示,具體的,第一桌面窗口可以覆蓋在該第二桌面窗口上進(jìn)行顯示,如果當(dāng)前桌面窗口是第一桌面窗口,通知該第一桌面窗口在該第二桌面窗口進(jìn)行隱藏,并顯示該第二桌面窗口。步驟104中切換到第一桌面窗口之后,該方法還包括105 :在第一桌面窗口加載某一應(yīng)用,參見圖4,具體包括步驟105a_105d 105a:??靠刂破鳈z測該用戶在該第一桌面窗口觸發(fā)一應(yīng)用的指令,并觸發(fā)相應(yīng)的應(yīng)用觸發(fā)事件;105b :桌面管理器監(jiān)測到該應(yīng)用觸發(fā)事件之后,通過該應(yīng)用的標(biāo)識調(diào)用任務(wù)管理器運(yùn)行該應(yīng)用;105c :該任務(wù)管理器根據(jù)該應(yīng)用的標(biāo)識查詢該應(yīng)用是否已經(jīng)運(yùn)行,105cl :如果已 經(jīng)運(yùn)行,則無須再加載,105c2 :如果沒有運(yùn)行,通過該應(yīng)用的標(biāo)識調(diào)用應(yīng)用加載器加載該應(yīng)用;105d :該應(yīng)用加載器根據(jù)該應(yīng)用的標(biāo)識查找該應(yīng)用對應(yīng)的代碼文件,并加載該代碼文件。本發(fā)明實施例通過生成第一桌面窗口,根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置,檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)該觸發(fā)指令對應(yīng)的觸發(fā)事件,監(jiān)聽到觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換,實現(xiàn)了兩個桌面窗口之間的切換,用戶可以根據(jù)自己對應(yīng)用的需要,選擇合適的桌面,并使用桌面中的應(yīng)用。參見圖5,本發(fā)明實施例還提供了一種桌面切換裝置,該裝置包括框架入口模塊201,用于生成第一桌面窗口 ;根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置;??靠刂破?02,用于檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)該觸發(fā)指令對應(yīng)的觸發(fā)事件;桌面管理器203,用于監(jiān)聽到觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。一方面,框架入口模塊201在根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置時,具體用于設(shè)置第一桌面窗口為頂層窗口 ;設(shè)置第一桌面窗口覆蓋在第二桌面窗口之上,并且位于應(yīng)用程序?qū)?yīng)的普通窗口之下。進(jìn)一步的,框架入口模塊201在根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置時,還用于設(shè)置第一桌面窗口在響應(yīng)第一桌面窗口的窗口消息時,返回?zé)o激活消息,無激活消息用于在用戶觸發(fā)第一桌面窗口時,第一桌面窗口位于普通窗口之下,不會被激活到普通窗口之上。進(jìn)一步的,框架入口模塊201在根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置時,還用于設(shè)置第一桌面窗口上的所有子控件都是繪制且無窗口化的,子控件被設(shè)置為繪制且無窗口化用于在用戶觸發(fā)第一桌面窗口上的子控件時,第一桌面窗口仍位于普通窗口之下,不會被激活到普通窗口之上。
進(jìn)一步的,框架入口模塊201在根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置時,還用于對第一桌面窗口,去掉標(biāo)題Title屬性,保留窗口客戶區(qū);加上工具窗口toolwindow屬性,去掉窗口任務(wù)欄顯示;將窗口大小設(shè)置成屏幕桌面的尺寸。桌面管理器203,具體用于監(jiān)聽到觸發(fā)事件之后,抓取第一桌面和第二桌面的截圖,將第一桌面截圖和第二桌面截圖拼接成一個并列的截圖;如果當(dāng)前桌面窗口是第二桌面,通過動畫方式擠去第二桌面,并將第一桌面顯示在第一桌面窗口 ;或者,如果當(dāng)前桌面窗口是第一桌面,通過動畫方式擠去第一桌面,并將第二桌面顯示在第二桌面窗口。另一方面,框架入口模塊201在根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置時,具體用于查找第二桌面窗口 ;將第一桌面窗口設(shè)置為第二桌面窗口的子窗口??蚣苋肟谀K201在將第一桌面窗口設(shè)置為第二桌面窗口的子窗口時,具體用于
通過第二桌面窗口的句柄,將第一桌面窗口設(shè)置為第二桌面窗口的子窗口。桌面管理器203,具體用于監(jiān)聽到觸發(fā)事件之后,如果當(dāng)前桌面窗口是第二桌面窗口,通知第一桌面窗口覆蓋在第二桌面窗口進(jìn)行顯示;或者,如果當(dāng)前桌面窗口是第一桌面窗口,通知第一桌面窗口在第二桌面窗口進(jìn)行隱藏,并顯示第二桌面窗口。進(jìn)一步的,參見圖6,該裝置還包括任務(wù)管理器204和應(yīng)用加載器205 ;當(dāng)桌面切換到第一桌面窗口之后,??靠刂破?02,還用于檢測用戶在第一桌面窗口觸發(fā)一應(yīng)用的指令,并觸發(fā)相應(yīng)的應(yīng)用觸發(fā)事件;桌面管理器203,還用于監(jiān)測到應(yīng)用觸發(fā)事件之后,通過應(yīng)用的標(biāo)識調(diào)用任務(wù)管理器204運(yùn)行應(yīng)用;任務(wù)管理器204,用于根據(jù)應(yīng)用的標(biāo)識查詢應(yīng)用是否已經(jīng)運(yùn)行,如果已經(jīng)運(yùn)行,則不加載應(yīng)用,如果沒有運(yùn)行,通過應(yīng)用的標(biāo)識調(diào)用應(yīng)用加載器205加載應(yīng)用;當(dāng)加載應(yīng)用時,應(yīng)用加載器205,用于根據(jù)應(yīng)用的標(biāo)識查找應(yīng)用對應(yīng)的代碼文件,并加載代碼文件。本發(fā)明實施例與方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里標(biāo)識贅述。本發(fā)明實施例通過生成第一桌面窗口,根據(jù)第二桌面窗口,對第一桌面窗口進(jìn)行設(shè)置,檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)該觸發(fā)指令對應(yīng)的觸發(fā)事件,監(jiān)聽到觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換,實現(xiàn)了兩個桌面窗口之間的切換,用戶可以根據(jù)自己對應(yīng)用的需要,選擇合適的桌面,并使用桌面中的應(yīng)用。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種桌面切換方法,其特征在于,所述方法包括 生成第一桌面窗口; 根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置; 檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)所述觸發(fā)指令對應(yīng)的觸發(fā)事件; 監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置,包括 設(shè)置所述第一桌面窗口為頂層窗口; 設(shè)置所述第一桌面窗口覆蓋在所述第二桌面窗口之上,并且位于應(yīng)用程序?qū)?yīng)的普通窗口之下。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置,還包括 設(shè)置所述第一桌面窗口在響應(yīng)所述第一桌面窗口的窗口消息時,返回?zé)o激活消息,所述無激活消息用于在用戶觸發(fā)所述第一桌面窗口時,所述第一桌面窗口位于所述普通窗口之下,不會被激活到所述普通窗口之上。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置,還包括 設(shè)置所述第一桌面窗口上的所有子控件都是繪制且無窗口化的,所述子控件被設(shè)置為繪制且無窗口化用于在用戶觸發(fā)所述第一桌面窗口上的子控件時,所述第一桌面窗口仍位于所述普通窗口之下,不會被激活到所述普通窗口之上。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置,還包括 對所述第一桌面窗口,去掉標(biāo)題Title屬性,保留窗口客戶區(qū);加上工具窗口toolwindow屬性,去掉窗口任務(wù)欄顯示;將窗口大小設(shè)置成屏幕桌面的尺寸。
6.根據(jù)權(quán)利要求2-5任一權(quán)利要求所述的方法,其特征在于,所述監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換,包括 監(jiān)聽到所述觸發(fā)事件之后,抓取第一桌面和第二桌面的截圖,將第一桌面截圖和第二桌面截圖拼接成一個并列的截圖; 如果當(dāng)前桌面窗口是第二桌面,通過動畫方式擠去第二桌面,并將第一桌面顯示在第一桌面窗口 ;或者,如果當(dāng)前桌面窗口是第一桌面,通過動畫方式擠去第一桌面,并將第二桌面顯示在第二桌面窗口。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置,包括 查找第二桌面窗口; 將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗口。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗口,包括 通過所述第二桌面窗口的句柄,將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗□。
9.根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換,包括 監(jiān)聽到所述觸發(fā)事件之后,如果當(dāng)前桌面窗口是第二桌面窗口,通知所述第一桌面窗口覆蓋在所述第二桌面窗口進(jìn)行顯示;或者,如果當(dāng)前桌面窗口是第一桌面窗口,通知所述第一桌面窗口在所述第二桌面窗口進(jìn)行隱藏,并顯示所述第二桌面窗口。
10.根據(jù)權(quán)利要求I所述的方法,其特征在于,當(dāng)桌面切換到所述第一桌面窗口之后,所述方法還包括 ??靠刂破鳈z測所述用戶在所述第一桌面窗口觸發(fā)一應(yīng)用的指令,并觸發(fā)相應(yīng)的應(yīng)用觸發(fā)事件; 桌面管理器監(jiān)測到所述應(yīng)用觸發(fā)事件之后,通過所述應(yīng)用的標(biāo)識調(diào)用任務(wù)管理器運(yùn)行所述應(yīng)用; 所述任務(wù)管理器根據(jù)所述應(yīng)用的標(biāo)識查詢所述應(yīng)用是否已經(jīng)運(yùn)行,如果已經(jīng)運(yùn)行,則不加載所述應(yīng)用,如果沒有運(yùn)行,通過所述應(yīng)用的標(biāo)識調(diào)用應(yīng)用加載器加載所述應(yīng)用; 當(dāng)加載所述應(yīng)用時,所述應(yīng)用加載器根據(jù)所述應(yīng)用的標(biāo)識查找所述應(yīng)用對應(yīng)的代碼文件,并加載所述代碼文件。
11.一種桌面切換裝置,其特征在于,所述裝置包括 框架入口模塊,用于生成第一桌面窗口 ;根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置; ??靠刂破鳎糜跈z測用戶切換桌面的觸發(fā)指令,并觸發(fā)所述觸發(fā)指令對應(yīng)的觸發(fā)事件; 桌面管理器,用于監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述框架入口模塊在根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置時,具體用于 設(shè)置所述第一桌面窗口為頂層窗口; 設(shè)置所述第一桌面窗口覆蓋在所述第二桌面窗口之上,并且位于應(yīng)用程序?qū)?yīng)的普通窗口之下。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述框架入口模塊在根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置時,還用于 設(shè)置所述第一桌面窗口在響應(yīng)所述第一桌面窗口的窗口消息時,返回?zé)o激活消息,所述無激活消息用于在用戶觸發(fā)所述第一桌面窗口時,所述第一桌面窗口位于所述普通窗口之下,不會被激活到所述普通窗口之上。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述框架入口模塊在根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置時,還用于 設(shè)置所述第一桌面窗口上的所有子控件都是繪制且無窗口化的,所述子控件被設(shè)置為繪制且無窗口化用于在用戶觸發(fā)所述第一桌面窗口上的子控件時,所述第一桌面窗口仍位于所述普通窗口之下,不會被激活到所述普通窗口之上。
15.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述框架入口模塊在根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置時,還用于 對所述第一桌面窗口,去掉標(biāo)題Title屬性,保留窗口客戶區(qū);加上工具窗口toolwindow屬性,去掉窗口任務(wù)欄顯示;將窗口大小設(shè)置成屏幕桌面的尺寸。
16.根據(jù)權(quán)利要求12-15任一權(quán)利要求所述的裝置,其特征在于,所述桌面管理器,具體用于 監(jiān)聽到所述觸發(fā)事件之后,抓取第一桌面和第二桌面的截圖,將第一桌面截圖和第二桌面截圖拼接成一個并列的截圖; 如果當(dāng)前桌面窗口是第二桌面,通過動畫方式擠去第二桌面,并將第一桌面顯示在第一桌面窗口 ;或者,如果當(dāng)前桌面窗口是第一桌面,通過動畫方式擠去第一桌面,并將第二桌面顯示在第二桌面窗口。
17.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述框架入口模塊在根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置時,具體用于 查找第二桌面窗口; 將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗口。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述框架入口模塊在將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗口時,具體用于 通過所述第二桌面窗口的句柄,將所述第一桌面窗口設(shè)置為所述第二桌面窗口的子窗□。
19.根據(jù)權(quán)利要求17或18所述的裝置,其特征在于,所述桌面管理器,具體用于 監(jiān)聽到所述觸發(fā)事件之后,如果當(dāng)前桌面窗口是第二桌面窗口,通知所述第一桌面窗口覆蓋在所述第二桌面窗口進(jìn)行顯示;或者,如果當(dāng)前桌面窗口是第一桌面窗口,通知所述第一桌面窗口在所述第二桌面窗口進(jìn)行隱藏,并顯示所述第二桌面窗口。
20.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括任務(wù)管理器和應(yīng)用加載器; 當(dāng)桌面切換到所述第一桌面窗口之后, 停靠控制器,還用于檢測所述用戶在所述第一桌面窗口觸發(fā)一應(yīng)用的指令,并觸發(fā)相應(yīng)的應(yīng)用觸發(fā)事件; 桌面管理器,還用于監(jiān)測到所述應(yīng)用觸發(fā)事件之后,通過所述應(yīng)用的標(biāo)識調(diào)用任務(wù)管理器運(yùn)行所述應(yīng)用; 所述任務(wù)管理器,用于根據(jù)所述應(yīng)用的標(biāo)識查詢所述應(yīng)用是否已經(jīng)運(yùn)行,如果已經(jīng)運(yùn)行,則不加載所述應(yīng)用,如果沒有運(yùn)行,通過所述應(yīng)用的標(biāo)識調(diào)用應(yīng)用加載器加載所述應(yīng)用; 當(dāng)加載所述應(yīng)用時,所述應(yīng)用加載器,用于根據(jù)所述應(yīng)用的標(biāo)識查找所述應(yīng)用對應(yīng)的代碼文件,并加載所述代碼文件。
全文摘要
本發(fā)明公開了一種桌面切換方法和裝置,屬于計算機(jī)領(lǐng)域。所述方法包括生成第一桌面窗口;根據(jù)第二桌面窗口,對所述第一桌面窗口進(jìn)行設(shè)置;檢測用戶切換桌面的觸發(fā)指令,并觸發(fā)所述觸發(fā)指令對應(yīng)的觸發(fā)事件;監(jiān)聽到所述觸發(fā)事件之后,根據(jù)當(dāng)前桌面窗口以及所述第一桌面窗口的設(shè)置信息,進(jìn)行桌面切換。所述裝置包括框架入口模塊、??靠刂破?、和桌面管理器。本發(fā)明通過上述方案實現(xiàn)了兩個桌面窗口之間的切換,用戶可以根據(jù)自己對應(yīng)用的需要,選擇合適的桌面,并使用桌面中的應(yīng)用。
文檔編號G06F9/46GK102866907SQ20111018833
公開日2013年1月9日 申請日期2011年7月6日 優(yōu)先權(quán)日2011年7月6日
發(fā)明者楊光, 李茁萌, 彭勇, 謝昕虬, 劉紅杰 申請人:騰訊科技(深圳)有限公司