亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法、裝置、設(shè)備及介質(zhì)與流程

文檔序號(hào):40463583發(fā)布日期:2024-12-27 09:28閱讀:6來源:國知局
基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法、裝置、設(shè)備及介質(zhì)與流程

本申請涉及計(jì)算機(jī),具體涉及一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法、裝置、設(shè)備及介質(zhì)。


背景技術(shù):

1、進(jìn)程浮水印能夠在進(jìn)程中浮現(xiàn)出預(yù)設(shè)的水印,提醒用戶當(dāng)前開啟的服務(wù)或軟件正在訪問重要數(shù)據(jù),這種警示作用可在一定程度上避免用戶無意間泄露敏感信息。

2、現(xiàn)有的進(jìn)程水印實(shí)現(xiàn)方式是通過linux窗口協(xié)議的事件監(jiān)聽接口(api)來監(jiān)控窗口事件。當(dāng)檢測到窗口創(chuàng)建事件時(shí),利用窗口標(biāo)識(shí)符(wid)獲取相應(yīng)的進(jìn)程標(biāo)識(shí)符(pid),以判斷該窗口是否需要添加水印。如果需要添加水印,則在該窗口上創(chuàng)建一個(gè)透明且鼠標(biāo)可穿透的置頂窗口進(jìn)行水印繪制。

3、然而,由于水印的繪制也需要一個(gè)窗口,當(dāng)需要繪制水印時(shí),在一個(gè)透明窗口繪制完水印后,將這個(gè)水印窗口附著到需要加密的窗口中。由于linux窗口的特殊性,水印窗口的父窗口為非根窗口時(shí)會(huì)把非根窗口的圖像內(nèi)存給奪走,導(dǎo)致非根窗口的內(nèi)容不可見。所以,當(dāng)有多個(gè)需要繪制水印的加密窗口時(shí),當(dāng)幾個(gè)加密窗口重疊時(shí),它們對應(yīng)的置頂水印窗口也會(huì)重疊,又因?yàn)樗〈翱诘闹庙攲傩?,甚至非加密窗口移?dòng)到加密窗口上,水印也會(huì)在非加密窗口上??梢姡F(xiàn)有技術(shù)在處理多個(gè)需要繪制進(jìn)程水印的窗口時(shí)存在顯著缺陷。


技術(shù)實(shí)現(xiàn)思路

1、本申請的目的是提供一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)。

2、第一方面,本申請實(shí)施例提供了一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法,包括:

3、與窗口管理器建立連接,并獲取水印圖像資源;

4、從窗口管理器獲取窗口堆棧中的所有窗口,并逐一遍歷所述窗口堆棧中的所有窗口;

5、對每個(gè)遍歷到的窗口,根據(jù)所述窗口為受控窗口且為非隱藏狀態(tài),判斷所述窗口是否為活躍窗口,得到判斷結(jié)果;其中,活躍窗口是指當(dāng)前與用戶交互的窗口;

6、根據(jù)所述判斷結(jié)果以及所述水印圖像資源對所述窗口進(jìn)行水印繪制,并根據(jù)窗口管理器發(fā)送的所述窗口對應(yīng)的窗口事件更新水印的顯示位置和狀態(tài);

7、根據(jù)所述窗口不需要添加水印或者所述窗口處于隱藏狀態(tài),跳過所述窗口,繼續(xù)遍歷下一個(gè)窗口。

8、一種可能的實(shí)現(xiàn)方式中,根據(jù)所述判斷結(jié)果以及所述水印圖像資源對所述窗口進(jìn)行水印繪制,包括:

9、如果所述判斷結(jié)果為所述窗口是活躍窗口,則在根窗口上創(chuàng)建一個(gè)透明的第一子窗口,將所述第一子窗口覆蓋在活躍窗口之上,并在所述第一子窗口中根據(jù)所述水印圖像資源繪制水印,使水印顯示在活躍窗口的內(nèi)容之上;

10、如果所述判斷結(jié)果為所述窗口不是活躍窗口,則在所述窗口上創(chuàng)建一個(gè)第二子窗口,將所述窗口的內(nèi)容拷貝到所述第二子窗口中,并在所述第二子窗口中根據(jù)所述水印圖像資源繪制水印,使水印顯示在所述窗口的內(nèi)容之上。

11、一種可能的實(shí)現(xiàn)方式中,所述窗口事件包括:鼠標(biāo)點(diǎn)擊、窗口形變、移動(dòng)和縮放事件。

12、一種可能的實(shí)現(xiàn)方式中,所述方法還包括:

13、對所述窗口堆棧的水印繪制結(jié)束時(shí),斷開與窗口管理器的連接和釋放水印圖像資源。

14、第二方面,本申請實(shí)施例提供了一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)裝置,包括:

15、初始化模塊,用于與窗口管理器建立連接,并獲取水印圖像資源;

16、窗口遍歷模塊,用于從窗口管理器獲取窗口堆棧中的所有窗口,并逐一遍歷所述窗口堆棧中的所有窗口;對每個(gè)遍歷到的窗口,根據(jù)所述窗口為受控窗口且為非隱藏狀態(tài),判斷所述窗口是否為活躍窗口,得到判斷結(jié)果;其中,活躍窗口是指當(dāng)前與用戶交互的窗口;根據(jù)所述判斷結(jié)果以及所述水印圖像資源對所述窗口進(jìn)行水印繪制,并根據(jù)窗口管理器發(fā)送的所述窗口對應(yīng)的窗口事件更新水印的顯示位置和狀態(tài);根據(jù)所述窗口不需要添加水印或者所述窗口處于隱藏狀態(tài),跳過所述窗口,繼續(xù)遍歷下一個(gè)窗口。

17、一種可能的實(shí)現(xiàn)方式中,所述窗口遍歷模塊,具體用于:

18、如果所述判斷結(jié)果為所述窗口是活躍窗口,則在根窗口上創(chuàng)建一個(gè)透明的第一子窗口,將所述第一子窗口覆蓋在活躍窗口之上,并在所述第一子窗口中根據(jù)所述水印圖像資源繪制水印,使水印顯示在活躍窗口的內(nèi)容之上;

19、如果所述判斷結(jié)果為所述窗口不是活躍窗口,則在所述窗口上創(chuàng)建一個(gè)第二子窗口,將所述窗口的內(nèi)容拷貝到所述第二子窗口中,并在所述第二子窗口中根據(jù)所述水印圖像資源繪制水印,使水印顯示在所述窗口的內(nèi)容之上。

20、一種可能的實(shí)現(xiàn)方式中,所述窗口事件包括:鼠標(biāo)點(diǎn)擊、窗口形變、移動(dòng)和縮放事件。

21、一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:

22、資源釋放模塊,用于對所述窗口堆棧的水印繪制結(jié)束時(shí),斷開與窗口管理器的連接和釋放水印圖像資源。

23、第三方面,本申請?zhí)峁┝艘环N電子設(shè)備,包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器運(yùn)行所述計(jì)算機(jī)程序時(shí)執(zhí)行以實(shí)現(xiàn)如第一方面所述的方法。

24、第四方面,本申請實(shí)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令可被處理器執(zhí)行以實(shí)現(xiàn)如第一方面所述的方法。

25、相較于現(xiàn)有技術(shù),本申請?zhí)峁┑幕诖翱诙褩5倪M(jìn)程水印實(shí)現(xiàn)方法,通過與窗口管理器建立連接,并獲取水印圖像資源;從窗口管理器獲取窗口堆棧中的所有窗口,并逐一遍歷所述窗口堆棧中的所有窗口;對每個(gè)遍歷到的窗口,根據(jù)所述窗口為受控窗口且為非隱藏狀態(tài),判斷所述窗口是否為活躍窗口,得到判斷結(jié)果;根據(jù)所述判斷結(jié)果以及所述水印圖像資源對所述窗口進(jìn)行水印繪制,并根據(jù)窗口管理器發(fā)送的所述窗口對應(yīng)的窗口事件更新水印的顯示位置和狀態(tài);根據(jù)所述窗口不需要添加水印或者所述窗口處于隱藏狀態(tài),跳過所述窗口,繼續(xù)遍歷下一個(gè)窗口。與現(xiàn)有技術(shù)相比,本申請通過遍歷窗口堆棧中每一個(gè)窗口,根據(jù)窗口是否為活躍窗口以及是否為隱藏狀態(tài)進(jìn)行水印繪制,確保水印不會(huì)遮擋非加密窗口的內(nèi)容,且多個(gè)加密窗口的內(nèi)容不會(huì)相互重疊,提升了系統(tǒng)性能和用戶體驗(yàn)。



技術(shù)特征:

1.一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述判斷結(jié)果以及所述水印圖像資源對所述窗口進(jìn)行水印繪制,包括:

3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述窗口事件包括:鼠標(biāo)點(diǎn)擊、窗口形變、移動(dòng)和縮放事件。

4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:

5.一種基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)裝置,其特征在于,包括:

6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述窗口遍歷模塊,具體用于:

7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述窗口事件包括:鼠標(biāo)點(diǎn)擊、窗口形變、移動(dòng)和縮放事件。

8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括:

9.一種電子設(shè)備,包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器運(yùn)行所述計(jì)算機(jī)程序時(shí)以實(shí)現(xiàn)如權(quán)利要求1至4任一項(xiàng)所述的方法。

10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,其上存儲(chǔ)有計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令可被處理器執(zhí)行以實(shí)現(xiàn)如權(quán)利要求1至4任一項(xiàng)所述的方法。


技術(shù)總結(jié)
本申請?zhí)峁┮环N基于窗口堆棧的進(jìn)程水印實(shí)現(xiàn)方法、裝置、設(shè)備及介質(zhì),涉及計(jì)算機(jī)技術(shù)領(lǐng)域。方法包括:與窗口管理器建立連接,并獲取水印圖像資源;從窗口管理器獲取窗口堆棧中的所有窗口,并逐一遍歷窗口堆棧中的所有窗口;對每個(gè)遍歷到的窗口,根據(jù)窗口為受控窗口且為非隱藏狀態(tài),判斷窗口是否為活躍窗口,得到判斷結(jié)果;根據(jù)判斷結(jié)果以及水印圖像資源對窗口進(jìn)行水印繪制,并根據(jù)窗口管理器發(fā)送的窗口對應(yīng)的窗口事件更新水印的顯示位置和狀態(tài);根據(jù)窗口不需要添加水印或者窗口處于隱藏狀態(tài),跳過窗口,繼續(xù)遍歷下一個(gè)窗口。本申請能夠確保水印不會(huì)遮擋非加密窗口的內(nèi)容,且多個(gè)加密窗口的內(nèi)容不會(huì)相互重疊,提升了系統(tǒng)性能和用戶體驗(yàn)。

技術(shù)研發(fā)人員:涂高元,邱志斌,郭永興,陸云燕,吳煒斌,林曉龍,艾敬
受保護(hù)的技術(shù)使用者:廈門天銳科技股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2024/12/26
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1