溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面

發(fā)布時(shí)間:2023-05-16 11:53:18 來源:億速云 閱讀:131 作者:iii 欄目:編程語言

今天小編給大家分享一下Python如何實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

代碼

import tkinter as tk
import win32gui
import win32con

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

        # 隱藏窗口邊框和標(biāo)題欄
        self.overrideredirect(True)
        self.title("跟隨微信的窗口")

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

        # 創(chuàng)建一個(gè)標(biāo)簽,用于顯示窗口位置信息
        self.label = tk.Label(self, text='')
        self.label.pack()

        # 啟動(dòng)定時(shí)器
        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()))
            # 獲取當(dāng)前鼠標(biāo)點(diǎn)擊的窗口的句柄的標(biāo)題
            getClickHownTitle = win32gui.GetWindowText(win32gui.GetForegroundWindow())

            # 判斷微信窗口狀態(tài),顯示或隱藏本窗口
            if win32gui.GetForegroundWindow() == wechat_hwnd:
                # 當(dāng)前點(diǎn)擊的句柄=微信的句柄
                self.wm_attributes('-alpha', 1.0)
            elif getClickHownTitle == '跟隨微信的窗口':
                # 當(dāng)前點(diǎn)擊的窗口的標(biāo)題=跟隨微信的窗口
                self.wm_attributes('-alpha', 1.0)
            else:
                # 不滿足以上兩個(gè)條件的其中一條,都得隱藏窗口
                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]))

            # 更新標(biāo)簽文本
            self.label.configure(text=win32gui.GetForegroundWindow())

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

        # 繼續(xù)定時(shí)器
        self.after(50, self.update_window)

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

代碼解釋

在這個(gè)示例中,使用了Python自帶的tkinter界面庫來實(shí)現(xiàn)一個(gè)簡單的無邊框窗口,窗口寬度200,高度與微信窗口一致。通過獲取微信客戶端的句柄來實(shí)時(shí)獲取微信窗口的位置及大小,啟動(dòng)定時(shí)器實(shí)時(shí)獲取到微信的顯示狀態(tài),50ms更新一次狀態(tài)以達(dá)到跟隨的目的。

動(dòng)圖演示

Python如何實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面

以上就是“Python如何實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI