文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-05-14 22:10

关注

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怎么实现实时跟随微信窗口移动的GUI界面的详细内容,更多请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯