ホームページ >バックエンド開発 >Python チュートリアル >WeChatウィンドウの動きにリアルタイムで追従するGUIインターフェースをPythonで実装する方法

WeChatウィンドウの動きにリアルタイムで追従するGUIインターフェースをPythonで実装する方法

WBOY
WBOY転載
2023-05-14 19:16:041160ブラウズ

Python で簡単な GUI インターフェイスを記述するのは非常に簡単で、Python には豊富なライブラリがあります。これらのライブラリを使用すると、Windows システムの操作が非常に便利になります。このインターフェイスを使用すると、多くの精巧なガジェットを作成できます。この記事のケースは簡単な例で、Python を使用して、WeChat PC 版クライアント ウィンドウの状態をリアルタイムで監視し、WeChat PC 版の右側にリアルタイムで追従するウィンドウを作成します。

コード

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()

コードの説明

この例では、Python に付属の tkinter インターフェイス ライブラリを使用して、ウィンドウ幅 200 の単純なボーダーレス ウィンドウを実装します。高さ 200 WeChat ウィンドウと一致します。 WeChat クライアントのハンドルを取得して WeChat ウィンドウの位置とサイズをリアルタイムで取得し、タイマーを開始して WeChat の表示ステータスをリアルタイムで取得し、50 ミリ秒ごとにステータスを更新して、次の目的を達成します。

アニメーション デモンストレーション

WeChatウィンドウの動きにリアルタイムで追従するGUIインターフェースをPythonで実装する方法

以上がWeChatウィンドウの動きにリアルタイムで追従するGUIインターフェースをPythonで実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。