Maison  >  Article  >  développement back-end  >  Comment implémenter une interface GUI qui suit le mouvement de la fenêtre WeChat en temps réel en Python

Comment implémenter une interface GUI qui suit le mouvement de la fenêtre WeChat en temps réel en Python

WBOY
WBOYavant
2023-05-14 19:16:041130parcourir

Il est très simple d'écrire des interfaces GUI simples en Python, et Python possède une multitude de bibliothèques. Ces bibliothèques peuvent nous permettre d'utiliser très facilement les systèmes Windows. Avec l'interface, nous pouvons créer de nombreux gadgets exquis. Le cas de cet article est un exemple simple, utilisant Python pour créer une fenêtre qui surveille l'état de la fenêtre client de la version PC de WeChat en temps réel et suit le côté droit de la version PC de WeChat en temps réel.

Code

import tkinter as tk
import win32gui
import win32con

class FollowWeChatWindow(tk.Tk):
    def __init__(self):
        super().__init__()

        # 隐藏窗口边框和标题栏
        self.overrideredirect(True)
        self.title("跟随微信的窗口")

        # 窗口置顶
        self.wm_attributes('-topmost', True)

        # 创建一个标签,用于显示窗口位置信息
        self.label = tk.Label(self, text='')
        self.label.pack()

        # 启动定时器
        self.after(50, self.update_window)

    def update_window(self):
        # 获取微信窗口句柄和位置
        wechat_hwnd = win32gui.FindWindow('WeChatMainWndForPC', None)
        if wechat_hwnd:
            wechat_rect = win32gui.GetWindowRect(wechat_hwnd)

            # print(win32gui.GetWindowText(win32gui.GetForegroundWindow()))
            # 获取当前鼠标点击的窗口的句柄的标题
            getClickHownTitle = win32gui.GetWindowText(win32gui.GetForegroundWindow())

            # 判断微信窗口状态,显示或隐藏本窗口
            if win32gui.GetForegroundWindow() == wechat_hwnd:
                # 当前点击的句柄=微信的句柄
                self.wm_attributes('-alpha', 1.0)
            elif getClickHownTitle == '跟随微信的窗口':
                # 当前点击的窗口的标题=跟随微信的窗口
                self.wm_attributes('-alpha', 1.0)
            else:
                # 不满足以上两个条件的其中一条,都得隐藏窗口
                self.wm_attributes('-alpha', 0.0)

            print(getClickHownTitle)

            # 获取微信窗口高度
            WeChat_Height = wechat_rect[3] - wechat_rect[1]

            # 更新本窗口位置
            self.geometry('200x%d+%d+%d' % (WeChat_Height, wechat_rect[2], wechat_rect[1]))

            # 更新标签文本
            self.label.configure(text=win32gui.GetForegroundWindow())

        else:
            # 微信窗口未找到,隐藏本窗口
            self.wm_attributes('-alpha', 0.0)

        # 继续定时器
        self.after(50, self.update_window)

if __name__ == '__main__':
    app = FollowWeChatWindow()
    app.mainloop()

Explication du code

Dans cet exemple, la bibliothèque d'interface tkinter fournie avec Python est utilisée pour implémenter une simple fenêtre sans bordure avec une largeur de fenêtre de 200 et une hauteur cohérente avec la fenêtre WeChat. Obtenez la position et la taille de la fenêtre WeChat en temps réel en prenant le contrôle du client WeChat, démarrez le minuteur pour obtenir l'état d'affichage de WeChat en temps réel et mettez à jour l'état toutes les 50 ms pour atteindre l'objectif de suivi.

Démo d'animation

Comment implémenter une interface GUI qui suit le mouvement de la fenêtre WeChat en temps réel en Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer