Python實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面
Python寫(xiě)一些簡(jiǎn)單的GUI界面也是非常簡(jiǎn)單的,并且Python有著豐富的庫(kù),這些庫(kù)可以很方便我們?nèi)ゲ僮鱓indows系統(tǒng),搭配界面,可以做出很多精美的小工具。本文的案例寫(xiě)一個(gè)簡(jiǎn)單的實(shí)例,使用Python創(chuàng)建一個(gè)窗口,這個(gè)窗口實(shí)時(shí)監(jiān)聽(tīng)微信PC版客戶端窗口的狀態(tài),并且實(shí)時(shí)跟隨在微信電腦版的右側(cè)。
代碼
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界面庫(kù)來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的無(wú)邊框窗口,窗口寬度200,高度與微信窗口一致。通過(guò)獲取微信客戶端的句柄來(lái)實(shí)時(shí)獲取微信窗口的位置及大小,啟動(dòng)定時(shí)器實(shí)時(shí)獲取到微信的顯示狀態(tài),50ms更新一次狀態(tài)以達(dá)到跟隨的目的。
動(dòng)圖演示

應(yīng)用
開(kāi)發(fā)一個(gè)這樣的窗口有什么用途?
- 客服助手,快捷回復(fù)語(yǔ)句
- 便攜筆記,快速記錄
- 備注助手,實(shí)時(shí)獲取微信用戶信息
到此這篇關(guān)于Python實(shí)現(xiàn)實(shí)時(shí)跟隨微信窗口移動(dòng)的GUI界面的文章就介紹到這了,更多相關(guān)Python實(shí)時(shí)移動(dòng)窗口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?pandas如何使用loc和iloc讀取行數(shù)據(jù)或列數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于python?pandas如何使用loc和iloc讀取行數(shù)據(jù)或列數(shù)據(jù)的相關(guān)資料,在學(xué)習(xí)機(jī)器學(xué)習(xí)的過(guò)程中對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)避免不了需要使用Pandas進(jìn)行大量操,需要的朋友可以參考下2023-10-10
如何利用python實(shí)現(xiàn)kmeans聚類(lèi)
K-Means是聚類(lèi)算法的一種,以距離來(lái)判斷數(shù)據(jù)點(diǎn)間的相似度并對(duì)數(shù)據(jù)進(jìn)行聚類(lèi),下面這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)kmeans聚類(lèi)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
OpenCV-Python實(shí)現(xiàn)通用形態(tài)學(xué)函數(shù)
本文將結(jié)合實(shí)例代碼,介紹OpenCV-Python實(shí)現(xiàn)通用形態(tài)學(xué)函數(shù),包含開(kāi)運(yùn)算,閉運(yùn)算等復(fù)雜的形態(tài)學(xué)運(yùn)算,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06

