公司突然决定给业务电脑系统桌面加上水印,工作人员拍照可自动打上水印。要求屏幕打上水印——“物理水印”。直接在显示器上打上水印?找了度娘好久,果然有人用python实现过。但是还是有些瑕疵,经过修改之后,完美实现,屏幕出现水印后,各个应用程序仍然可点击操作。
主要模块:
- pip install tkinter
- pip install pypiwin32
import tkinter, win32api, win32con, pywintypes
def get_replicate_text(text):
i,space,str1,str2 = 0,70,””,””
while (i <= 5):
str1 = str1 + text + ” “*space
i = i + 1
str2 = ” “*space + str1 + “\n\n\n\n”
str1 = str1 + “\n\n\n\n”
str1 = (str1 + str2) * 5
return str1
mytext = get_replicate_text(‘水印水印水印’)//此处是需要显示在屏幕上的水印内容
root = tkinter.Tk()
width = win32api.GetSystemMetrics(0)
height = win32api.GetSystemMetrics(1)
root.overrideredirect(True) #隐藏显示框
root.geometry(“+0+0”) #设置窗口位置或大小
root.lift() #置顶层
root.wm_attributes(“-topmost”, True) #始终置顶层
root.wm_attributes(“-disabled”, True)
root.wm_attributes(“-transparentcolor”, “white”)#白色背景透明
hWindow = pywintypes.HANDLE(int(root.frame(), 16))
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
label = tkinter.Label(text=mytext,compound = ‘left’,font=(‘Times New Roman’,’15’), fg=’#d5d5d5′, bg=’white’)
label.pack() #显示
root.mainloop()
完美实现,分享给大家一起学习学习