專利名稱:用于攔截彈窗的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種用于攔截彈窗的裝置和方法。
背景技術(shù):
目前,互聯(lián)網(wǎng)中的各種應(yīng)用軟件一般都會(huì)進(jìn)行自己推送信息的彈窗,每日新聞的提示等。幾乎所有熱門的應(yīng)用軟件都會(huì)在用戶開機(jī)的時(shí)候或進(jìn)行其他操作的時(shí)候彈出這些窗口。這種向用戶強(qiáng)制推廣信息的方式對用戶造成了很大的打擾。現(xiàn)有的屏蔽軟件都是在獲取到彈窗的具體特征后進(jìn)行針對性屏蔽,這樣會(huì)導(dǎo)致無法實(shí)時(shí)攔截新出現(xiàn)的彈窗,并且以前的彈窗修改掉其自己的一些特征后,也無法保證攔截效果。另外,現(xiàn)有的屏蔽軟件也無法對在特定區(qū)域彈出的彈窗進(jìn)行識(shí)別攔截。例如,不能實(shí)現(xiàn)只攔截屏幕右下角區(qū)域的彈窗,而不攔截屏幕中央?yún)^(qū)域的彈窗。因此無法根據(jù)彈窗的彈出區(qū)域進(jìn)行識(shí)別攔截。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種用于攔截彈窗的裝置和相應(yīng)的用于攔截彈窗的方法。依據(jù)本發(fā)明的一個(gè)方面,一種用于攔截彈窗的裝置,該裝置包括存儲(chǔ)單元、設(shè)置單元、窗口位置獲取單元、位置判斷單元和阻止單元;所述存儲(chǔ)單元,適于保存顯示屏幕指定區(qū)域范圍信息;所述設(shè)置單元,適于設(shè)置用于攔截窗口消息的窗口鉤子程序,并接收所述窗口鉤子程序攔截到的窗口消息;所述窗口位置獲取單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域;所述位置判斷單元,適于判斷所述窗口位置獲取單元獲取的所述坐標(biāo)位置區(qū)域,是否在所述存儲(chǔ)單元中保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則通知所述阻止單元; 所述阻止單元,適于阻止該窗口消息對應(yīng)的窗口的彈出??蛇x地,該裝置進(jìn)一步包括白名單判斷單元;所述存儲(chǔ)單元,還適于保存預(yù)設(shè)的白名單;所述白名單判斷單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名,判斷該進(jìn)程名是否在預(yù)設(shè)的白名單中,是則不做處理,否則通知所述窗口位置獲取單元;所述窗口位置獲取單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到窗口消息并在收到所述白名單判斷單元的通知時(shí),獲取該窗口消息對應(yīng)的窗口最終要在屏幕上顯示的位置區(qū)域。
可選地,該裝置進(jìn)一步包括用戶接口;所述用戶接口,適于接收用戶的指令,并根據(jù)用戶的指令在所述存儲(chǔ)單元中創(chuàng)建、修改或刪除所述屏幕的指定區(qū)域范圍信息??蛇x地,所述設(shè)置單元,適于通過調(diào)用Windows操作系統(tǒng)的SetWindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序??蛇x地,所述存儲(chǔ)單元保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍包括位于顯示屏幕正中的一定范圍的區(qū)域,和/或,位于顯示屏幕右下角的一定范圍的區(qū)域。根據(jù)本發(fā)明的另一方面,提供了一種用于攔截彈窗的方法,該方法包括設(shè)置用于攔截窗口消息的窗口鉤子程序;當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作;所述根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作包括獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域;判斷獲取的所述坐標(biāo)位置區(qū)域是否在所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則阻止該窗口消息對應(yīng)的窗口的彈出??蛇x地,當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),并在所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作之前,該方法進(jìn)一步包括獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名;如果該進(jìn)程名在預(yù)設(shè)的白名單中,則不再執(zhí)行所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作的步驟;如果該進(jìn)程名不在預(yù)設(shè)的白名單中,則執(zhí)行所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作的步驟??蛇x地,該方法還包括提供用戶接口,使得用戶能夠通過該用戶接口創(chuàng)建、修改或刪除所述屏幕指定區(qū)域范圍信息??蛇x地,所述設(shè)置用于攔截窗口消息的窗口鉤子程序包括通過調(diào)用Windows操作系統(tǒng)的SetWindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序??蛇x地,所述顯示屏幕指定區(qū)域范圍包括位于顯示屏幕正中的一定范圍的區(qū)域,和/或,位于顯示屏幕右下角的一定范圍的區(qū)域。根據(jù)本發(fā)明的這種設(shè)置用于攔截窗口消息的窗口鉤子程序,當(dāng)該窗口鉤子程序攔截到窗口消息時(shí),根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作;其中所述根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作包括獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域,判斷獲取的所述坐標(biāo)位置區(qū)域是否在所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則阻止該窗口消息對應(yīng)的窗口的彈出的技術(shù)方案中由于通過設(shè)置的窗口鉤子程序攔截窗口消息,因此可以在窗口彈出前進(jìn)行判斷,并阻止廣告窗口的彈出,并且判斷的方式是根據(jù)窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域進(jìn)行的,當(dāng)窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域在廣告窗口彈出的指定范圍內(nèi)時(shí)阻止窗口的彈出,因此避免了根據(jù)廣告窗口自身的特征進(jìn)行攔截的現(xiàn)有方案中,當(dāng)廣告窗口修改特征時(shí)攔截效果不佳的問題。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的方法的流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的方法的流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的裝置的結(jié)構(gòu)圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的方法的流程圖。參見圖1,該方法包括步驟S110,設(shè)置用于攔截窗口消息的窗口鉤子程序。窗口鉤子程序是Windows操作系統(tǒng)中的一個(gè)處理消息的程序,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,窗口鉤子程序就先捕獲該消息,亦即窗口鉤子程序先得到控制權(quán)。這時(shí)窗口鉤子程序即可以修改該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強(qiáng)制結(jié)束該消息的傳遞。在本發(fā)明的一個(gè)實(shí)施例中,通過調(diào)用Windows操作系統(tǒng)的SetWindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序。即實(shí)現(xiàn)本方法的程序在啟動(dòng)后會(huì)調(diào)用SetWindowsHookEx接口向Windows操作系統(tǒng)注冊一個(gè)窗口鉤子程序,用于攔截系統(tǒng)創(chuàng)建窗口和移動(dòng)窗口的消息,當(dāng)有窗口創(chuàng)建或移動(dòng)位置時(shí),通知實(shí)現(xiàn)本方法的程序優(yōu)先處理此消
肩、O步驟S120,當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作;其中,根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作包括獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域,判斷獲取的該坐標(biāo)位置區(qū)域是否在所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則阻止該窗口消息對應(yīng)的窗口的彈出。在本發(fā)明的實(shí)施例中,所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍即為常見的廣告窗口彈出的位置,例如在本發(fā)明的一個(gè)實(shí)施例中,該顯示屏幕指定區(qū)域范圍為位于顯示屏幕正中的一定范圍的區(qū)域,或者,位于顯示屏幕右下角的一定范圍的區(qū)域,或者,位于顯示屏幕正中的一定范圍的區(qū)域以及位于顯示屏幕右下角的一定范圍的區(qū)域。圖1所示的方法中,由于通過設(shè)置的窗口鉤子程序攔截窗口消息,因此可以在窗口彈出前進(jìn)行判斷,并阻止廣告窗口的彈出,并且判斷的依據(jù)是窗口要在屏幕上顯示的坐標(biāo)位置,而不是根據(jù)窗口自身的特征作為依據(jù),因此避免了根據(jù)廣告窗口自身的特征進(jìn)行攔截的現(xiàn)有方案中,當(dāng)廣告窗口修改特征時(shí)攔截效果不佳的問題。在本發(fā)明的一個(gè)實(shí)施例中,還可以將一些不想攔截其彈出窗口的進(jìn)程名列入白名單,在檢查窗口要彈出的位置之前,先判斷要彈出的窗口的進(jìn)程名是否在白名單內(nèi),是則不再檢查窗口要彈出的位置,直接放行,任其窗口彈出。具體如圖2所示。圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的方法的流程圖。參見圖2,該方法包括步驟S210,設(shè)置用于攔截窗口消息的窗口鉤子程序。步驟S220,當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名。在本發(fā)明的一個(gè)實(shí)施例中,可以通過操作系統(tǒng)提供的接口獲取窗口消息對應(yīng)的窗口所屬的進(jìn)程名。步驟S230,判斷該進(jìn)程名是否在預(yù)設(shè)的白名單中,是則結(jié)束本方法流程,否則執(zhí)行步驟S240。步驟S240,獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域。在本發(fā)明的一個(gè)實(shí)施例中,通過操作系統(tǒng)提供的接口獲取窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域。步驟S250,判斷獲取的該坐標(biāo)位置區(qū)域是否在所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),是則執(zhí)行步驟S260,否則結(jié)束本方法流程。步驟S260,阻止該窗口消息對應(yīng)的窗口的彈出。圖2所示的方法中,通過設(shè)置白名單,可以使得一些用戶希望看到的窗口彈出,而不是全部阻止,進(jìn)一步提高了用戶體驗(yàn)。在本發(fā)明的一個(gè)實(shí)施例中,還提供用戶接口,使得用戶能夠通過該用戶接口創(chuàng)建、修改或刪除屏幕指定區(qū)域范圍信息。通常情況下,各種應(yīng)用軟件在屏幕的右下角或屏幕的正中彈窗,此時(shí)將這兩個(gè)位置設(shè)置為屏幕指定區(qū)域范圍即可,則屏幕指定區(qū)域范圍信息表示的即為這兩個(gè)位置。但是,在有些情況下,可能用戶對屏幕工作區(qū)域有其特殊的需求,因此可以根據(jù)用戶指令在屏幕的不同位置創(chuàng)建多個(gè)指定區(qū)域范圍。另外,各應(yīng)用軟件也有可能變更彈窗的位置,因此提供用戶接口,可以使得用戶能夠根據(jù)實(shí)際情況和需求設(shè)置需要進(jìn)行彈窗攔截的屏幕區(qū)域。這樣,用戶可以隨時(shí)調(diào)整進(jìn)行彈窗攔截的屏幕區(qū)域,以達(dá)到看自己想看的彈窗并屏蔽掉自己不想看會(huì)影響自己的彈窗。在實(shí)際體驗(yàn)中,用戶每次開機(jī)的時(shí)候,當(dāng)前比較熱門的應(yīng)用軟件(如即時(shí)通信工具軟件、下載軟件以及播放器軟件等)都會(huì)在屏幕的中央彈出新聞窗口,這樣用戶需要連續(xù)關(guān)掉多個(gè)窗口才可以進(jìn)行正常的操作。此外,在使用電腦的過程中,一般在屏幕的右下角也會(huì)有各種消息窗口和廣告窗口彈出,影響用戶的正常使用。而采用本發(fā)明上述的技術(shù)方案后,可根據(jù)用戶的選擇進(jìn)行自動(dòng)屏蔽這些彈窗,這樣就不會(huì)影響用戶對電腦的正常操作了。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的裝置的結(jié)構(gòu)圖。如圖3所示,該用于攔截彈窗的裝置300包括存儲(chǔ)單元301、設(shè)置單元302、窗口位置獲取單元303、位置判斷單元304和阻止單元305 ;存儲(chǔ)單元301,適于保存顯示屏幕指定區(qū)域范圍信息。設(shè)置單元302,適于設(shè)置用于攔截窗口消息的窗口鉤子程序,并接收所述窗口鉤子程序攔截到的窗口消息。窗口位置獲取單元303,適于在設(shè)置單元302接收到窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域。位置判斷單元304,適于判斷窗口位置獲取單元303獲取的該坐標(biāo)位置區(qū)域,是否在存儲(chǔ)單元301中保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則通知阻止單元305。阻止單元305,適于阻止該窗口消息對應(yīng)的窗口的彈出。圖3所示的裝置中,由于設(shè)置單元302設(shè)置了窗口鉤子程序攔截窗口消息,因此窗口位置獲取單元303可以在窗口彈出前獲得窗口要顯示的位置,以及位置判斷單元304可以根據(jù)窗口要顯示的位置進(jìn)行判斷是否進(jìn)行阻止,在判斷為阻止時(shí)由阻止單元305阻止廣告窗口的彈出,因此在窗口彈出前就可以進(jìn)行攔截,并且由于是根據(jù)窗口要彈出的位置作為判斷依據(jù),而不是以窗口本身的特征作為判斷依據(jù),因此避免了當(dāng)廣告窗口修改特征時(shí)攔截效果不佳的問題。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種用于攔截彈窗的裝置的結(jié)構(gòu)圖。如圖4所示,該用于攔截彈窗的裝置400包括存儲(chǔ)單元401、設(shè)置單元402、窗口位置獲取單元403、位置判斷單元404、阻止單元405、白名單判斷單元406和用戶接口 407。存儲(chǔ)單元401,適于保存顯示屏幕指定區(qū)域范圍信息,還適于保存預(yù)設(shè)的白名單。設(shè)置單元402,適于設(shè)置用于攔截窗口消息的窗口鉤子程序,并接收所述窗口鉤子程序攔截到的窗口消息。白名單判斷單元406,適于在設(shè)置單元402接收到窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名,判斷該進(jìn)程名是否在存儲(chǔ)單元401中的預(yù)設(shè)的白名單中,是則不做處理,否則通知窗口位置獲取單元403。這樣,可以通過設(shè)置白名單使得一些用戶希望看到的窗口彈出,而不是全部阻止,進(jìn)一步提高了用戶體驗(yàn)。窗口位置獲取單元403,適于在設(shè)置單元402接收到窗口鉤子程序攔截到窗口消息并在收到白名單判斷單元406的通知時(shí),獲取該窗口消息對應(yīng)的窗口最終要在屏幕上顯示的位置區(qū)域。位置判斷單元404,適于判斷窗口位置獲取單元403獲取的該坐標(biāo)位置區(qū)域,是否在存儲(chǔ)單元401中保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則通知阻止單元405。阻止單元405,適于阻止該窗口消息對應(yīng)的窗口的彈出。用戶接口 407,適于接收用戶的指令,并根據(jù)用戶的指令在存儲(chǔ)單元401中創(chuàng)建、修改或刪除所述屏幕的指定區(qū)域范圍信息。這樣,用戶可以隨時(shí)調(diào)整進(jìn)行彈窗攔截的屏幕區(qū)域,以達(dá)到看自己想看的彈窗并屏蔽掉自己不想看會(huì)影響自己的彈窗。在本發(fā)明的一個(gè)實(shí)施例中,設(shè)置單元402適于通過調(diào)用Windows操作系統(tǒng)的SetWindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序。
在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)單元401保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍包括位于顯示屏幕正中的一定范圍的區(qū)域,和/或,位于顯示屏幕右下角的一定范圍的區(qū)域。綜上所述,本發(fā)明的這種技術(shù)方案中,由于設(shè)置了窗口鉤子程序攔截窗口消息,因此可以在窗口彈出前進(jìn)行判斷,并阻止廣告窗口的彈出,并且判斷的依據(jù)是根據(jù)窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域進(jìn)行的,當(dāng)窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域在廣告窗口彈出的指定范圍內(nèi)時(shí)阻止窗口的彈出,因此避免了根據(jù)廣告窗口自身的特征進(jìn)行攔截的現(xiàn)有方案中,當(dāng)廣告窗口修改特征時(shí)攔截效果不佳的問題。本發(fā)明技術(shù)方案可以對用戶打擾巨大的廣告彈窗進(jìn)行屏蔽。目前各種應(yīng)用軟件對用戶強(qiáng)制推廣信息的情況越來越多,幾乎每個(gè)軟件都想在開機(jī)啟動(dòng)后就推送給用戶一些信息,而且屏幕正中,右下角各個(gè)位置相對集中,采用本發(fā)明這種根據(jù)彈出位置屏蔽這些彈窗的方案,可以很好的解決新軟件,新彈窗的廣告屏蔽問題,不需要屏蔽軟件進(jìn)行升級就可以得到很好的屏蔽效果,讓用戶的使用體驗(yàn)得到提升。需要說明的是在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用于攔截彈窗的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種用于攔截彈窗的裝置,該裝置包括存儲(chǔ)單元、設(shè)置單元、窗口位置獲取單元、位置判斷單元、用戶接口和阻止單元; 所述存儲(chǔ)單元,適于保存顯示屏幕指定區(qū)域范圍信息; 所述設(shè)置單元,適于設(shè)置用于攔截窗口消息的窗口鉤子程序,并接收所述窗口鉤子程序攔截到的窗口消息; 所述窗口位置獲取單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域; 所述位置判斷單元,適于判斷所述窗口位置獲取單元獲取的所述坐標(biāo)位置區(qū)域,是否在所述存儲(chǔ)單元中保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則通知所述阻止單元; 所述阻止單元,適于阻止該窗口消息對應(yīng)的窗口的彈出; 所述用戶接口,適于接收用戶的指令,并根據(jù)用戶的指令在所述存儲(chǔ)單元中創(chuàng)建、修改或刪除所述屏幕的指定區(qū)域范圍信息。
2.如權(quán)利要求1所述的裝置,其中,該裝置進(jìn)一步包括白名單判斷單元; 所述存儲(chǔ)單元,還適于保存預(yù)設(shè)的白名單; 所述白名單判斷單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到的窗口消息時(shí),獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名,判斷該進(jìn)程名是否在預(yù)設(shè)的白名單中,是則不做處理,否則通知所述窗口位置獲取單元; 所述窗口位置獲取單元,適于在所述設(shè)置單元接收到所述窗口鉤子程序攔截到窗口消息并在收到所述白名單判斷單元的通知時(shí),獲取該窗口消息對應(yīng)的窗口最終要在屏幕上顯示的位置區(qū)域。
3.如權(quán)利要求1至2中任一項(xiàng)所述的裝置,其中, 所述設(shè)置單元,適于通過調(diào)用Windows操作系統(tǒng)的SetWindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序。
4.如權(quán)利要求1至2中任一項(xiàng)所述的裝置,其中, 所述存儲(chǔ)單元保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍包括位于顯示屏幕正中的一定范圍的區(qū)域,和/或,位于顯示屏幕右下角的一定范圍的區(qū)域。
5.一種用于攔截彈窗的方法,該方法包括 設(shè)置用于攔截窗口消息的窗口鉤子程序; 當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作; 所述根據(jù)對應(yīng)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作包括獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域;判斷獲取的所述坐標(biāo)位置區(qū)域是否在所保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則阻止該窗口消息對應(yīng)的窗口的彈出; 提供用戶接口,使得用戶能夠通過該用戶接口創(chuàng)建、修改或刪除所述屏幕指定區(qū)域范圍息。
6.如權(quán)利要求5所述的方法,其中,當(dāng)所述窗口鉤子程序攔截到窗口消息時(shí),并在所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作之前,該方法進(jìn)一步包括 獲取該窗口消息對應(yīng)的窗口所屬的進(jìn)程名; 如果該進(jìn)程名在預(yù)設(shè)的白名單中,則不再執(zhí)行所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作的步驟; 如果該進(jìn)程名不在預(yù)設(shè)的白名單中,則執(zhí)行所述根據(jù)窗口要顯示的區(qū)域進(jìn)行彈窗阻止操作的步驟。
7.如權(quán)利要求5至6中任一項(xiàng)所述的方法,其中, 所述設(shè)置用于攔截窗口消息的窗口鉤子程序包括通過調(diào)用Windows操作系統(tǒng)的SetffindowsHookEx接口來設(shè)置用于攔截窗口消息的窗口鉤子程序。
8.如權(quán)利要求5至7任一項(xiàng)所述的方法,其中, 所述顯示屏幕指定區(qū)域范圍包括位于顯示屏幕正中的一定范圍的區(qū)域,和/或,位于顯示屏幕右下角的一定范圍的區(qū)域。
全文摘要
本發(fā)明公開了一種用于攔截彈窗的裝置和方法。該裝置包括存儲(chǔ)單元,適于保存顯示屏幕指定區(qū)域范圍信息;設(shè)置單元,適于設(shè)置用于攔截窗口消息的窗口鉤子程序并接收攔截到的窗口消息;窗口位置獲取單元,適于在設(shè)置單元接收到窗口消息時(shí)獲取該窗口消息對應(yīng)的窗口要在屏幕上顯示的坐標(biāo)位置區(qū)域;位置判斷單元,適于判斷坐標(biāo)位置區(qū)域是否在存儲(chǔ)單元中保存的顯示屏幕指定區(qū)域范圍信息所表示的顯示屏幕指定區(qū)域范圍內(nèi),如果是則通知阻止單元;阻止單元,適于阻止該窗口消息對應(yīng)的窗口的彈出;用戶接口,適于接收用戶的指令,并根據(jù)指令在存儲(chǔ)單元中創(chuàng)建、修改或刪除指定區(qū)域范圍信息。本發(fā)明的技術(shù)方案避免了當(dāng)廣告窗口修改特征時(shí)攔截效果不佳的問題。
文檔編號G06F21/51GK103034800SQ20121054456
公開日2013年4月10日 申請日期2012年12月14日 優(yōu)先權(quán)日2012年12月14日
發(fā)明者張濤, 閆磊 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司