最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

python tkinter 實(shí)現(xiàn)反截圖(采用windows api)

2023-07-18 14:31 作者:xiaozhang_awa  | 我要投稿


前文

我們需要明白 windows user32.dll 動(dòng)態(tài)庫?的 "SetWindowDisplayAffinity"模塊

SetWindowDisplayAffinit?旨在支持 Windows 7 新增的窗口內(nèi)容保護(hù)功能。 此功能使應(yīng)用程序能夠保護(hù)其自己的屏幕窗口內(nèi)容

他有兩個(gè)值? 【分別是hWnd 和?dwAffinity】

其中?hWnd?類型是:HWND?他是頂級(jí)窗口的句柄。 窗口必須屬于當(dāng)前進(jìn)程。

而?dwAffinity?類型:DWORD 用于顯示相關(guān)性設(shè)置,用于指定窗口的內(nèi)容可以顯示的位置。

他有3個(gè)值 :

【0x00000000?對(duì)窗口的顯示位置施加任何限制。】

【0x00000001?窗口內(nèi)容僅顯示在監(jiān)視器上。 在其他地方,該窗口不顯示任何內(nèi)容。[黑]】

【0x00000011 窗口僅顯示在監(jiān)視器上。 在其他地方,窗口根本不顯示。[透明]】

正文

我們須安裝ctypes,tkinter 模塊? 【用pip install 模塊名】安裝

接著在文件內(nèi)導(dǎo)入



import tkinter as tk? #as tk?tkinter的別名。

from ctypes import *

from ctypes import wintypes #在?ctypes 導(dǎo)入?wintypes 模塊

win = tk.Tk()

win.geometry('450x250') #窗口大小

win.update() # 刷新窗口 以便句柄能正常使用

dwAffinity = wintypes.DWORD(0x00000001)#使用wintypes模塊,“0x00000001”可換成其他值

a = win.winfo_id() #獲取程序窗口的句柄?注意!這不是系統(tǒng)句柄

hWindow = windll.user32.GetParent(a) # 所以我們還要用這改為系統(tǒng)句柄

dll = cdll.LoadLibrary(r"C:\WINDOWS\system32\")#接著導(dǎo)入user32.dll 模塊

v = dll.SetWindowDisplayAffinity(hWindow,dwAffinity)#最后調(diào)用user32.dll模塊的SetWindowDisplayAffinity

win.mainloop()#保持一下窗口顯示

#這就好了,但是為了方便顯示成功沒,我們就再寫個(gè)判斷

if v != 1 :

? dll = cdll.LoadLibrary(r"C:\WINDOWS\system32\kernel32.dll")#導(dǎo)入windows中的顯示錯(cuò)函數(shù)

? dll = dll.GetLastError()#調(diào)用

? print(dll)#打印到控制臺(tái)



這就結(jié)束了

給張圖:

系統(tǒng)截圖

多嘴幾句

【僅供學(xué)習(xí)】

如有寫的不對(duì),請(qǐng)大佬多多指教

這只支持windows系統(tǒng)

還有 還有“反反截圖”軟件? 運(yùn)用 Hook 【鉤子】強(qiáng)制注入dll 實(shí)現(xiàn)廢除功能?就不放地址了

水一篇文章


python tkinter 實(shí)現(xiàn)反截圖(采用windows api)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
全椒县| 绍兴市| 天等县| 五台县| 东海县| 思茅市| 体育| 宝坻区| 胶州市| 涿州市| 三都| 张家口市| 盐城市| 肇东市| 太谷县| 潼关县| 华安县| 顺昌县| 安塞县| 金坛市| 八宿县| 闸北区| 和平区| 沁阳市| 铅山县| 凤冈县| 广灵县| 星子县| 瓦房店市| 平昌县| 长葛市| 金山区| 石狮市| 揭西县| 枝江市| 鲁甸县| 云霄县| 英山县| 利辛县| 海丰县| 大理市|