看电脑系统之家

您现在的位置是:首页 > 编程教程 > 正文

编程教程

python开发电脑桌面显示ip信息水印_ 电脑桌面显示日期时间水印

kanmain2022-04-18编程教程2407
 由于信息安全需要公司要求电脑桌面水印要显示公司名称+日期+IP+姓名,在网上找了不是要收费的就是达不到要求的,所以只有利用python开发一个,可以单机也可以连服务端后台获取姓名具体代码

  由于信息安全需要公司要求电脑桌面水印要显示公司名称+日期+ip+姓名,在网上找了不是要收费的就是达不到要求的,所以只有利用python开发一个,可以单机也可以连服务端后台获取姓名具体代码如下:

import tkinter, win32api, win32con, pywintypes,requests,socket,base64,datetime
#configparser

def get_host_IP():
    try:
        s=socket.socket(socket.AF_.net,socket.SOCK_DGRAM)
        s.connect(('8.8.8.8',80))
        ip=s.getsockname()[0]
    finally:
        s.close()
    return ip

ip = get_host_ip()

def get_replicate_text(text):
    i, space, str1, str2 = 0, 32, "", ""
    while (i <= 11):
        str1 = str1 + text + " " * space
        i = i + 1
    str2 = " " * space + str1 + "\n\n\n\n\n\n\n\n\n"
    str1 = str1 + "\n\n\n\n\n\n\n\n"
    str1 = (str1 + str2) * 11
    return str1
dateStr = datetime.datetime.now().strftime('%Y-%m-%d')
dateStr = dateStr.replace('-','')
'''
cf = configparser.ConfigParser()
cf.read(r"cfg.ini")
secs = cf.sections()  # 获取文件中所有的section(一个配置文件中可以有多个配置,如数据库相关的配置,邮箱相关的配置,每个section由[]包裹,即[section]),并以列表的形式返回

getUrl = cf.get("conf","get")  # 网址
name = cf.get("conf","name")  # 姓名
getUrl = getUrl+'='

'''

with open("C:\dist\cfg.dat", "r") as f:  # 打开文件
    data = f.read()  # 读取文件
    #print(data)
dataArr = data.split(',')
getUrl = ''
name = ''
if(len(dataArr)==2): #如果配置文件中配置了URL则通过发送本机IP地址给服务端返回显示水印的姓名
    getUrl = dataArr[0]  # 网址
    name = dataArr[1]  # 姓名
    #getUrl = base64.b64decode(getUrl).decode("utf-8") #这个是配置了base64加密的URL 需要进行解密
    getUrl = getUrl + ip
elif(len(dataArr)==1):
    name = dataArr[0]  # 姓名



while True:

    try:
        respose = requests.get(getUrl,timeout=10)
        State = respose.status_code
        if State==200:
            respose.encoding = 'utf-8'
            name = respose.text
    except:
        pass

    mytext = get_replicate_text("广州XXX-%s-%s-%s" %(dateStr,ip,name))
    root = tkinter.Tk()
    width = win32api.GetSystemMetrics(0)
    height = win32api.GetSystemMetrics(1)
    root.overrideredirect(True)  # 隐藏显示框
    w = root.winfo_screenwidth()
    h = root.winfo_screenheight()
    color = '#333333'
    fontSize = '14'
    root.geometry("%dx%d" %(w,h))
    #root.geometry("+0+0")  # 设置窗口位置或大小
    root.lift()  # 置顶层
    root.attributes("-alpha",0.25)                   #全局透明度,用来设置水印文字透明
    root.wm_attributes("-topmost", True)  # 始终置顶层
    root.wm_attributes("-disabled", True)
    #root.wm_attributes('-topmost',1)
    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=('宋体', fontSize), fg=color, bg='white')
    label.pack()  # 显示
    root.mainloop()  # 循环

C:distcfg.dat  文件配置

image.png


最终的运行水印如下图:

image.png

至于需要打包成一个exe文件的可以使用pyinstaller库来打包

关于python开发电脑桌面显示ip信息水印_ 电脑桌面显示日期时间水印的文章就详细介绍到这里啦,希望这篇文章解决方法能够帮助你解决问题,如果这篇文章对你有所帮助或者你想要学习更多电脑知识与电脑操作技巧,欢迎你收藏本网站。