当前位置 博文首页 > 使用 Python 实现微信消息的一键已读的思路代码

    使用 Python 实现微信消息的一键已读的思路代码

    作者:简简单单OnlineZuozuo 时间:2021-08-10 17:50

    关键词
    微信消息一键已读 微信消息批量已读 微信消息全部已读
    1、微信消息怎么批量已读
    2、微信消息可以一键已读吗
    3、微信如何设置全部已读

    目前支持 windows 微信
    下载后双击运行即可

    点击下载微信消息一键已读工具

    1、实现思路

    Step 1 > 获取微信的句柄
    Step 2 > 激活微信窗口
    Step 3 > 移动聊天窗口到最前
    Step 4 > 模拟快捷键阅读消息
    Step 5 >

    2、安装依赖

    所需依赖

    import win32gui
    import win32con
    import win32api
    import pyautogui
    from time import sleep
    from tkinter import *

    3.编写代码


    支持代码

    """
    微信消息一键已读
    """
    
    import win32gui
    import win32con
    import win32api
    import pyautogui
    from time import sleep
    
    '''
    hwnd = win32gui.FindWindow(lpClassName=None, lpWindowName=None)  # 查找窗口,不找子窗口,返回值为0表示未找到窗口
    hwnd = win32gui.FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None)  # 查找子窗口,返回值为0表示未找到子窗口
    
    win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
    SW_HIDE:隐藏窗口并激活其他窗口。nCmdShow=0。
    SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。nCmdShow=1。
    SW_SHOWMINIMIZED:激活窗口并将其最小化。nCmdShow=2。
    SW_SHOWMAXIMIZED:激活窗口并将其最大化。nCmdShow=3。
    SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=4。
    SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。nCmdShow=5。
    SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。nCmdShow=6。
    SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。nCmdShow=7。
    SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=8。
    SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。nCmdShow=9。
    '''
    
    
    def max_min_windows(hwnd):
        """
        如果已经最大化,就最小化,否则反之
        :param hwnd: 窗口句柄
        """
        if win32gui.IsIconic(hwnd):
            win32gui.ShowWindow(hwnd, win32con.SW_SHOWMAXIMIZED)
        else:
            win32gui.ShowWindow(hwnd, win32con.SW_SHOWMINIMIZED)
    
    
    def up():
        pyautogui.press('up')
        sleep(0.01)
    
    
    def down():
        pyautogui.press('down')
        sleep(0.01)
    
    
    def read_msg(hwnd):
        # 获取窗口的坐标
        left, top, right, bottom = win32gui.GetWindowRect(hwnd)
        pyautogui.moveTo(left + 170, top + 100)
        pyautogui.click(left + 170, top + 100, button='left')
        # 滚轮滚动到最顶端
        [pyautogui.scroll(1000) for i in range(15)]
        pyautogui.click(left + 170, top + 100, button='left')
        # 模拟读消息按键
        [up() for i in range(5)]
        [down() for i in range(20)]
        # 回到最顶端
        [pyautogui.scroll(1000) for i in range(15)]
        # 回到顶端聊天窗口
        pyautogui.click(left + 170, top + 100, button='left')
    
    
    # 显示到正常状态
    def active_window(hwnd):
        win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE)
        win32gui.SetActiveWindow(hwnd)
        win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
    

    应用程序代码

    from windows_api.wechat import wechat_one_key_read
    from tkinter import *
    import win32gui
    from time import sleep
    
    root = Tk()
    # 标题
    root.title('wx')
    # 窗口大小
    root.geometry('200x50+300+300')
    
    
    def read():
        hwnd = win32gui.FindWindow('WeChatMainWndForPC', "微信")
        if hwnd == 0:
            [print('微信未启动,请启动微信再试') for i in range(5)]
            return
        print('请勿移动鼠标或者操作键盘')
        sleep(1)
        print('开始激活微信窗口')
        wechat_one_key_read.active_window(hwnd)
        print('微信窗口已经激活,请勿移动鼠标或者操作键盘')
        print('开始阅读消息')
        wechat_one_key_read.read_msg(hwnd)
        print('消息阅读完成')
    
    
    t = Entry(root)
    b = Button(root, text='一键已读', command=read)
    b.pack()
    
    root.mainloop()
    
    if __name__ == '__main__':
        pass

    相关参考 如何把代码打包成 exe 可执行程序

    4、运行效果


    已读完成

    以上就是使用 Python 实现微信消息的一键已读的详细内容,更多关于Python 微信一键已读的资料请关注站长博客其它相关文章!
    jsjbwy