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

 更新时间:2023年04月11日 09:11:36   作者:TANKING  
Python写一些简单的GUI界面也是非常简单的,并且Python有着丰富的库,这些库可以很方便我们去操作Windows系统。本文就来用Python编写一个实时跟随微信窗口移动的GUI界面吧

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界面的文章就介绍到这了,更多相关Python实时移动窗口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python fileinput模块使用介绍

    Python fileinput模块使用介绍

    这篇文章主要介绍了Python fileinput模块使用方法,需要的朋友可以参考下
    2014-11-11
  • 深入学习python多线程与GIL

    深入学习python多线程与GIL

    这篇文章主要介绍了深入学习python多线程与GIL,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • matplotlib实现显示伪彩色图像及色度条

    matplotlib实现显示伪彩色图像及色度条

    今天小编就为大家分享一篇matplotlib实现显示伪彩色图像及色度条,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 利用Python自动化识别与删除Excel表格空白行和列

    利用Python自动化识别与删除Excel表格空白行和列

    在处理Excel数据时,经常会遇到含有空白行和空白列的情况,本文将介绍如何利用Python来自动化识别并删除Excel文件中的空白行和列,从而确保数据集的整洁性,为后续的数据分析工作奠定坚实的基础,需要的朋友可以参考下
    2024-05-05
  • python日期相关操作实例小结

    python日期相关操作实例小结

    这篇文章主要介绍了python日期相关操作,结合实例形式总结分析了Python针对日期时间的获取、转换、运算等相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • wxPython窗口中文乱码解决方法

    wxPython窗口中文乱码解决方法

    这篇文章主要介绍了wxPython窗口中文乱码解决方法,在Python程序设计中比较常见,是非常实用的技巧,需要的朋友可以参考下
    2014-10-10
  • Python urls.py的三种配置写法实例详解

    Python urls.py的三种配置写法实例详解

    这篇文章主要介绍了Python urls.py的三种配置写法实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • 在Pandas中处理NaN值的方法

    在Pandas中处理NaN值的方法

    这篇文章主要介绍了在Pandas中处理NaN值的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • python geopandas读取、创建shapefile文件的方法

    python geopandas读取、创建shapefile文件的方法

    shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Class),主要包括点(point)、线(polyline)和多边形(polygon),本文重点给大家介绍python geopandas读取、创建shapefile文件的方法,需要的朋友参考下吧
    2021-06-06
  • Python编译过程和执行原理解析

    Python编译过程和执行原理解析

    这篇文章主要介绍了Python编译过程和执行原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论