Heim > Backend-Entwicklung > Python-Tutorial > So implementieren Sie in Python eine GUI-Schnittstelle, die der Bewegung des WeChat-Fensters in Echtzeit folgt

So implementieren Sie in Python eine GUI-Schnittstelle, die der Bewegung des WeChat-Fensters in Echtzeit folgt

WBOY
Freigeben: 2023-05-14 19:16:04
nach vorne
1225 Leute haben es durchsucht

Es ist sehr einfach, einige einfache GUI-Schnittstellen in Python zu schreiben, und Python verfügt über eine Fülle von Bibliotheken, die uns die Bedienung von Windows-Systemen sehr erleichtern können. Mit der Schnittstelle können wir viele exquisite Gadgets erstellen. Der Fall dieses Artikels ist ein einfaches Beispiel, bei dem mithilfe von Python ein Fenster erstellt wird, das den Status des Clientfensters der WeChat-PC-Version in Echtzeit überwacht und der rechten Seite der WeChat-PC-Version in Echtzeit folgt.

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()
Nach dem Login kopieren

Code-Erklärung

In diesem Beispiel wird die mit Python gelieferte Tkinter-Schnittstellenbibliothek verwendet, um ein einfaches randloses Fenster mit einer Fensterbreite von 200 und einer Höhe zu implementieren, die mit dem WeChat-Fenster übereinstimmt. Erhalten Sie die Position und Größe des WeChat-Fensters in Echtzeit, indem Sie das Handle des WeChat-Clients abrufen, den Timer starten, um den Anzeigestatus von WeChat in Echtzeit abzurufen, und den Status alle 50 ms aktualisieren, um den Zweck der Verfolgung zu erreichen.

Animationsdemo

So implementieren Sie in Python eine GUI-Schnittstelle, die der Bewegung des WeChat-Fensters in Echtzeit folgt

Das obige ist der detaillierte Inhalt vonSo implementieren Sie in Python eine GUI-Schnittstelle, die der Bewegung des WeChat-Fensters in Echtzeit folgt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage