本發(fā)明涉及終端技術(shù)領(lǐng)域,特別是涉及一種日歷顯示方法及裝置。
背景技術(shù):
隨著國家法定節(jié)假日的調(diào)整,人們對于假期、補(bǔ)班、節(jié)日等時(shí)間日期相關(guān)信息越來越關(guān)注。同時(shí)在日常生活中,繁忙的工作和人際交往,導(dǎo)致人們很難去記全所有事情,尤其是生日、聚會(huì)。此時(shí)終端設(shè)備中的日歷應(yīng)用程序就可以發(fā)揮它的作用了。例如,用戶可以在日歷中設(shè)置時(shí)間提醒,在設(shè)定的時(shí)間到來時(shí),日歷可以展示提示信息,以提醒用戶有待辦事項(xiàng)。
在安裝有Windows系統(tǒng)的終端設(shè)備中,Windows系統(tǒng)自帶了一個(gè)日歷應(yīng)用程序,能夠在終端設(shè)備的右下角的日歷窗口顯示日歷界面,但是它所提供的功能有限。因此,可以在終端設(shè)備上安裝其它日歷應(yīng)用程序,提供更加豐富的功能。
終端設(shè)備上安裝的日歷應(yīng)用程序可以將自身的日歷界面顯示在終端設(shè)備上。但是,當(dāng)在終端設(shè)備上安裝多個(gè)日歷應(yīng)用程序時(shí),在終端設(shè)備上顯示的日歷界面可能會(huì)在多個(gè)日歷界面之間進(jìn)行切換,用戶體驗(yàn)較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種日歷顯示方法及裝置,以在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。具體技術(shù)方案如下:
第一方面,本發(fā)明實(shí)施例提供了一種日歷顯示方法,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,所述方法包括:
當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄;
如果是,生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的 消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
可選的,所述日歷應(yīng)用程序通過掛鉤的方式檢測所述攔截函數(shù)的調(diào)用請求。
可選的,所述日歷應(yīng)用程序安裝到所述終端設(shè)備上后,所述方法還包括:
生成調(diào)用所述攔截函數(shù)的第三調(diào)用請求,其中生成的所述攔截函數(shù)的第三調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第三調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
可選的,所述日歷窗口的句柄為:TrayClockWClass。
可選的,所述攔截函數(shù)為:SetWindowLongPtr函數(shù)。
第二方面,本發(fā)明實(shí)施例還提供了一種日歷顯示裝置,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,所述裝置包括:
判斷模塊,用于檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄;
執(zhí)行模塊,用于當(dāng)所述判斷模塊判斷結(jié)果為是時(shí),生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
可選的,所述日歷應(yīng)用程序通過掛鉤的方式檢測所述攔截函數(shù)的調(diào)用請求。
可選的,所述裝置還包括:
處理模塊,用于所述日歷應(yīng)用程序安裝到所述終端設(shè)備上后,生成調(diào)用所述攔截函數(shù)的第三調(diào)用請求,其中生成的所述攔截函數(shù)的第三調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第三調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
可選的,所述日歷窗口的句柄為:TrayClockWClass。
可選的,所述攔截函數(shù)為:SetWindowLongPtr函數(shù)。
本發(fā)明實(shí)施例提供的日歷顯示方法及裝置,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,所述方法包括:當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄;如果是,生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。本實(shí)施例中,當(dāng)?shù)谝蝗諝v應(yīng)用程序檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求,并且該第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),表明其它日歷應(yīng)用程序想要在日歷窗口顯示其日歷界面,第一日歷應(yīng)用程序可以生成調(diào)用攔截函數(shù)的第二調(diào)用請求,以使終端設(shè)備的操作系統(tǒng)采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面,因此,保證了第一日歷應(yīng)用程序的日歷界面一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了根據(jù)本發(fā)明提供的日歷顯示方法的一個(gè)實(shí)施例的示意性流程圖;
圖2示出了根據(jù)本發(fā)明提供的日歷顯示方法的另一個(gè)實(shí)施例的示意性流程圖;
圖3示出了根據(jù)本發(fā)明提供的日歷顯示裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
在安裝有Windows系統(tǒng)的終端設(shè)備中,Windows系統(tǒng)自帶了一個(gè)日歷應(yīng)用程序,能夠在終端設(shè)備的右下角的日歷窗口顯示日歷界面,但是Windows系統(tǒng)自帶的日歷應(yīng)用程序所提供的功能有限,例如,用戶僅可以查看公歷,而不能查看公農(nóng)歷對應(yīng);用戶還可以在日歷中設(shè)置時(shí)間提醒,在設(shè)定的時(shí)間到來時(shí),日歷可以顯示提示信息,以提醒用戶有待辦事項(xiàng),而不能提示具體的待辦事項(xiàng)的內(nèi)容。這些不能夠滿足用戶的需求,用戶希望日歷應(yīng)用程序可以提供更豐富的功能,如,提供待辦事項(xiàng)的內(nèi)容、公農(nóng)歷對應(yīng)、天氣預(yù)報(bào)、節(jié)假日氣候查詢、放假安排查詢等生活功能,更能提供買飛機(jī)票、秒搶火車票等功能。
因此,可以在終端設(shè)備上安裝其它日歷應(yīng)用程序,為用戶提供更加豐富的功能。在終端設(shè)備上安裝日歷應(yīng)用程序后,終端設(shè)備上安裝的日歷應(yīng)用程序可以將自身的日歷界面顯示在終端設(shè)備上。
在Windows的窗口實(shí)現(xiàn)中,所有的窗口繪制都是通過接收WM_PAINT消息,并調(diào)用相應(yīng)的消息響應(yīng)函數(shù)來實(shí)現(xiàn)的。所以,安裝于終端設(shè)備上的日歷應(yīng)用程序要想能夠繪制自身的日歷界面,將自身的日歷界面顯示在終端設(shè)備上,就必須要攔截WM_PAINT消息。Windows系統(tǒng)正好提供了這樣一個(gè)攔截函數(shù)SetWindowLongPtr。
因此,安裝于終端設(shè)備上的任一日歷應(yīng)用程序可以生成調(diào)用這個(gè)攔截函數(shù)的調(diào)用請求,以使終端設(shè)備的操作系統(tǒng)將該日歷應(yīng)用程序的消息響應(yīng)函數(shù)放置在函數(shù)調(diào)用鏈的頂端,并且攔截到所有的窗口消息后,可以采用該日歷應(yīng)用程序的消息響應(yīng)函數(shù)單獨(dú)對WM_PAINT消息進(jìn)行處理,用以繪制自身的日歷界面,在日歷窗口中顯示自身的日歷界面。
當(dāng)終端設(shè)備中安裝有多個(gè)日歷應(yīng)用程序時(shí),針對每個(gè)日歷應(yīng)用程序,都可以生成調(diào)用攔截函數(shù)的調(diào)用請求,將自身的消息響應(yīng)函數(shù)放置在函數(shù)調(diào)用鏈的頂端,并將自身的日歷界面顯示在日歷窗口。因此,在函數(shù)調(diào)用鏈的頂端放置 的消息響應(yīng)函數(shù)會(huì)不斷的變化,在日歷窗口顯示的日歷界面也可能會(huì)不穩(wěn)定。
因此,本發(fā)明實(shí)施例提供了一種日歷顯示方法,當(dāng)?shù)谝蝗諝v應(yīng)用程序檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求,并且該第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),表明其它日歷應(yīng)用程序想要在日歷窗口顯示其日歷界面,第一日歷應(yīng)用程序可以生成調(diào)用攔截函數(shù)的第二調(diào)用請求,以使終端設(shè)備的操作系統(tǒng)采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面,因此,保證了第一日歷應(yīng)用程序的日歷界面一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
請參考圖1,其示出了根據(jù)本發(fā)明提供的日歷顯示方法的一個(gè)實(shí)施例的示意性流程圖。
如圖1所示,本實(shí)施例提供的日歷顯示方法,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,可以包括如下步驟:
步驟101,當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄。
在本實(shí)施例中,安裝在終端設(shè)備上的第一日歷應(yīng)用程序可以將自身的日歷界面顯示在日歷窗口。并且,可以將自身的日歷界面一直顯示在日歷窗口,而其它日歷應(yīng)用程序的日歷界面不會(huì)在終端設(shè)備的日歷窗口顯示。
若其它日歷應(yīng)用程序想要將自身的日歷界面顯示在日歷窗口,則需要生成調(diào)用攔截函數(shù)的調(diào)用請求。因此,安裝于終端設(shè)備上的第一日歷應(yīng)用程序可以檢測是否存在其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求。其中,上述攔截函數(shù)可以為:SetWindowLongPtr函數(shù)。
例如,第一日歷應(yīng)用程序可以通過掛鉤的方式檢測是否存在其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求。具體地,可以借助于第三方類庫Detours,這個(gè)類庫的作用是對函數(shù)調(diào)用進(jìn)行掛鉤,將原有的函數(shù)調(diào)用替換為改寫后的函數(shù)實(shí)現(xiàn)。利用它,可以將攔截函數(shù)實(shí)現(xiàn)進(jìn)行改寫,當(dāng)其它應(yīng)用程序調(diào)用攔截函數(shù)時(shí),第一日歷應(yīng)用程序便會(huì)檢測到。
當(dāng)?shù)谝蝗諝v應(yīng)用程序檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求 時(shí),可以進(jìn)一步判斷調(diào)用攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄。
在終端設(shè)備中,不同的應(yīng)用程序生成相應(yīng)的調(diào)用攔截函數(shù)的調(diào)用請求,可以在終端設(shè)備中繪制不同的窗口,如,word窗口、輸入法窗口等。因此,第一日歷應(yīng)用程序檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),不能僅根據(jù)該第一調(diào)用請求確定將要在終端設(shè)備中繪制的窗口類型。
每一個(gè)應(yīng)用程序在生成調(diào)用攔截函數(shù)的調(diào)用請求時(shí),都可以在調(diào)用攔截函數(shù)的調(diào)用請求中傳遞對應(yīng)的窗口句柄,以在終端設(shè)備中繪制對應(yīng)的窗口。因此,為了確定檢測到的攔截函數(shù)的第一調(diào)用請求對應(yīng)繪制的窗口類型,第一日歷應(yīng)用程序可以進(jìn)一步判斷攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄。
當(dāng)攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄不是日歷窗口的句柄時(shí),該攔截函數(shù)的第一調(diào)用請求對應(yīng)繪制的窗口類型不是日歷窗口,則第一應(yīng)用程序可以不進(jìn)行后續(xù)操作。其它應(yīng)用程序可以繼續(xù)調(diào)用攔截函數(shù),執(zhí)行相應(yīng)的操作。
可選地,在Windows系統(tǒng)中,日歷窗口的句柄為:TrayClockWClass。
步驟102,生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
當(dāng)?shù)谝蝗諝v應(yīng)用程序確定攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),表明其它日歷應(yīng)用程序想要在日歷窗口顯示其日歷界面。這種情況下,第一日歷應(yīng)用程序可以生成調(diào)用攔截函數(shù)的第二調(diào)用請求,其中生成的攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得終端設(shè)備的操作系統(tǒng)可以根據(jù)調(diào)用攔截函數(shù)的第二調(diào)用請求,采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面。
具體地,當(dāng)?shù)谝蝗諝v應(yīng)用程序確定攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),操作系統(tǒng)會(huì)采用其它日歷應(yīng)用程序的消息響應(yīng)函數(shù) 對接收到的窗口消息進(jìn)行處理,在日歷窗口顯示其它日歷應(yīng)用程序?qū)?yīng)的日歷界面。而第一日歷應(yīng)用程序會(huì)生成調(diào)用攔截函數(shù)的第二調(diào)用請求,在調(diào)用攔截函數(shù)的調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得操作系統(tǒng)根據(jù)調(diào)用攔截函數(shù)的第二調(diào)用請求,采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面。因此,第一日歷應(yīng)用程序通過生成調(diào)用攔截函數(shù)的第二調(diào)用請求,可以將自身對應(yīng)的日歷界面顯示在日歷窗口。由于第一應(yīng)用程序?qū)?yīng)的日歷界面可以及時(shí)顯示,因此,在用戶看來一直顯示的是第一應(yīng)用程序的日歷界面。
本實(shí)施例提供的日歷顯示方法,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,所述方法包括:當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄;如果是,生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。本實(shí)施例中,當(dāng)?shù)谝蝗諝v應(yīng)用程序檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求,并且該第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),表明其它日歷應(yīng)用程序想要在日歷窗口顯示其日歷界面,第一日歷應(yīng)用程序可以生成調(diào)用攔截函數(shù)的第二調(diào)用請求,以使終端設(shè)備的操作系統(tǒng)采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面,因此,保證了第一日歷應(yīng)用程序的日歷界面一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
請參考圖2,其示出了根據(jù)本發(fā)明提供的日歷顯示方法的另一個(gè)實(shí)施例的示意性流程圖。
如圖2所示,本實(shí)施例提供的日歷顯示方法,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,可以包括如下步驟:
步驟201,所述日歷應(yīng)用程序安裝到所述終端設(shè)備上后,生成調(diào)用所述攔截函數(shù)的第三調(diào)用請求,其中生成的所述攔截函數(shù)的第三調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第三調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理, 以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
在本實(shí)施例中,當(dāng)?shù)谝蝗諝v應(yīng)用程序安裝到終端設(shè)備上后,可以生成調(diào)用攔截函數(shù)的第三調(diào)用請求,其中生成的攔截函數(shù)的第三調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用攔截函數(shù)的第三調(diào)用請求,采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面。因此,能夠保證第一日歷應(yīng)用程序安裝到終端設(shè)備上后,即可以在終端設(shè)備中顯示自身的日歷界面。
步驟202,當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄。
步驟203,生成調(diào)用所述攔截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
上述步驟202-203與圖1所示實(shí)施例中的步驟101-102基本相同,在此不再贅述。
本實(shí)施例提供的方法,能夠保證第一日歷應(yīng)用程序安裝到終端設(shè)備上后,即可以在終端設(shè)備中顯示自身的日歷界面。并且,第一日歷應(yīng)用程序的日歷界面可以一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
請參考圖3,其示出了根據(jù)本發(fā)明提供的日歷顯示裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
如圖3所示,本實(shí)施例提供的日歷顯示裝置,應(yīng)用于終端設(shè)備上的日歷應(yīng)用程序,所述裝置可以包括:
判斷模塊310,用于檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求時(shí),判斷調(diào)用所述攔截函數(shù)的第一調(diào)用請求中傳遞的窗口句柄是否為日歷窗口的句柄;
執(zhí)行模塊320,用于當(dāng)所述判斷模塊310判斷結(jié)果為是時(shí),生成調(diào)用所述攔 截函數(shù)的第二調(diào)用請求,其中生成的所述攔截函數(shù)的第二調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述終端設(shè)備的操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第二調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
進(jìn)一步地,所述日歷應(yīng)用程序通過掛鉤的方式檢測所述攔截函數(shù)的調(diào)用請求。
進(jìn)一步地,所述日歷窗口的句柄為:TrayClockWClass。
進(jìn)一步地,所述攔截函數(shù)為:SetWindowLongPtr函數(shù)。
在本實(shí)施例的一個(gè)可選實(shí)現(xiàn)方式中,所述裝置還可以包括:
處理模塊330,用于所述日歷應(yīng)用程序安裝到所述終端設(shè)備上后,生成調(diào)用所述攔截函數(shù)的第三調(diào)用請求,其中生成的所述攔截函數(shù)的第三調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄,以使得所述操作系統(tǒng)根據(jù)調(diào)用所述攔截函數(shù)的第三調(diào)用請求,采用所述日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,以在日歷窗口顯示所述日歷應(yīng)用程序?qū)?yīng)的日歷界面。
本實(shí)施例提供的日歷顯示裝置,當(dāng)檢測到其它應(yīng)用程序調(diào)用攔截函數(shù)的第一調(diào)用請求,并且該第一調(diào)用請求中傳遞的窗口句柄為日歷窗口的句柄時(shí),表明其它日歷應(yīng)用程序想要在日歷窗口顯示其日歷界面,第一日歷應(yīng)用程序可以生成調(diào)用攔截函數(shù)的第二調(diào)用請求,以使終端設(shè)備的操作系統(tǒng)采用第一日歷應(yīng)用程序的消息響應(yīng)函數(shù)對接收的窗口消息進(jìn)行處理,在日歷窗口顯示第一日歷應(yīng)用程序?qū)?yīng)的日歷界面,因此,保證了第一日歷應(yīng)用程序的日歷界面一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
本實(shí)施例提供的裝置,能夠保證第一日歷應(yīng)用程序安裝到終端設(shè)備上后,即可以在終端設(shè)備中顯示自身的日歷界面。并且,第一日歷應(yīng)用程序的日歷界面可以一直顯示在日歷窗口,能夠在終端設(shè)備中顯示穩(wěn)定的日歷界面,提升用戶體驗(yàn)。
對于系統(tǒng)/裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。