Python实现实时跟随微信窗口移动的GUI界面

作者:TANKING 时间:2022-06-09 11:12:25 

Python写一些简单的GUI界面也是非常简单的,并且Python有着丰富的库,这些库可以很方便我们去操作Windows系统,搭配界面,可以做出很多精美的小工具。本文的案例写一个简单的实例,使用Python创建一个窗口,这个窗口实时监听微信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,高度与微信窗口一致。通过获取微信客户端的句柄来实时获取微信窗口的位置及大小,启动定时器实时获取到微信的显示状态,50ms更新一次状态以达到跟随的目的。

动图演示

Python实现实时跟随微信窗口移动的GUI界面

应用

开发一个这样的窗口有什么用途?

  • 客服助手,快捷回复语句

  • 便携笔记,快速记录

  • 备注助手,实时获取微信用户信息

来源:https://segmentfault.com/a/1190000043640284

标签:Python,实时,移动,窗口
0
投稿

猜你喜欢

  • Python使用内置函数setattr设置对象的属性值

    2021-10-09 20:32:44
  • Python OpenCV 针对图像细节的不同操作技巧

    2021-08-13 01:29:22
  • DreamweaverMX2004的一句话技巧

    2009-05-22 18:23:00
  • 详解go-micro微服务consul配置及注册中心

    2024-04-23 09:48:20
  • Python中pandas模块DataFrame创建方法示例

    2022-07-19 03:06:09
  • 浅谈Scrapy网络爬虫框架的工作原理和数据采集

    2023-08-24 22:17:21
  • python中文分词库jieba使用方法详解

    2021-11-14 13:31:06
  • Django REST framework内置路由用法

    2022-04-06 14:22:35
  • 使用python-pptx操作PPT的示例详解

    2022-06-01 21:49:20
  • Python计算两个矩形重合面积代码实例

    2021-12-18 23:34:22
  • Linux系统下Mysql使用简单教程(一)

    2024-01-16 20:26:51
  • 基于Python实现语音合成小工具

    2023-01-13 15:25:38
  • MySQL数据库备份以及常用备份工具集合

    2024-01-23 04:25:53
  • Tkinter组件实现Radiobutton的示例

    2022-08-01 00:23:24
  • 从网页设计开始

    2008-06-30 12:17:00
  • 一篇文章彻底搞懂Python切片操作

    2021-10-11 18:23:07
  • 设计稿标注首屏线的确定始末

    2011-03-30 12:36:00
  • asp textarea 多行数组分割处理方法

    2011-03-03 10:55:00
  • Go高级特性探究之对象比较详解

    2024-04-26 17:26:59
  • Python之列表推导式最全汇总(中篇)

    2022-05-25 20:56:59
  • asp之家 网络编程 m.aspxhome.com