小隐的博客

人生在世,笑饮一生
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

定向清理微信群里的图片和视频

Posted on 2022-07-14 11:36  隐客  阅读(683)  评论(0编辑  收藏  举报

由于微信在电脑上用了好几年,文件夹巨大,但有些视频是有用的,所以没法一次性清理

于是找些没用的群,定向进行删除,但那工作量也是要命。

想找弄个按钮精灵来处理一下,但发现这个软件已经太low了,全TM是广告,基本是流氓。

还是自己写个python脚本比较靠谱。

原理就是打开群里的聊天记录,然后按图片和视频查找,此时弹窗会把所有视频和图片列出来,然后就是多选,删除了。

import pyautogui as pg
import time
from ctypes import *
from ctypes import wintypes
import win32gui
#下面代码为检测鼠标所在的位置,条件改成true为一直检测。
while (11==121):
    print(pg.position())
    time.sleep(0.1)

#以下注释为一些常用的方法
#pyautogui.click()
#pyautogui.click(button=‘right’)
#pyautogui.doubleClick()
#pg.moveTo(100,200,2)   2 是移动秒数的意思,默认为 0.1 ,快速移动的那种
#pg.dragTo(300, 400, 2, button=‘left’)
#pyautogui.press(‘enter’)
#pyautogui.hotkey(‘ctrl’, ‘shift’, ‘t’)
#pyautogui.hotkey(‘ctrl’, ‘c’)  复制
#按住不动可以使用 keyDown 方法,释放按键可以使用 keyUp 方法
#pg.PAUSE=1 指的是每隔一秒执行一个操作指令
#pg.keyDown('alt')
#pg.press('tab')
#pg.keyUp('alt')
#pg.write(‘hello Python !’, interval=0.3) 控制键盘输入内容


#此代码未用到,微信的弹出菜单不在三界之中,用不到。
def ClickOnMenuItemByText(text, button = "LEFT"):
    hwnd = win32gui.FindWindow("#32768", None)
    MN_GETHMENU = 0x01E1
    hmenu = win32gui.SendMessage(hwnd, MN_GETHMENU, 0, 0)
    print(hmenu)
    icount = win32gui.GetMenuItemCount(hmenu)
    print(icount)
    for i in range(icount):
        t = GetMenuItemString(i).decode("gbk").encode("UTF-8")
        print (text, t)
        if text == t:
            rect = rect = win32gui.GetMenuItemRect(hwnd, hmenu, i)[1]
            x = (rect[2] - rect[0]) / 2 + rect[0]
            y = (rect[3] - rect[1]) / 2 + rect[1]
            print(x, y)
            #MouseClick(x, y, button)
            #此处原码参考https://blog.csdn.net/weixin_28864485/article/details/112965939
    return True

#该方法并不通用,需要人工做一定调校,目前是把微信的窗口放在(0,0)的位置,然后基本可用。
def a():

    time.sleep(0.5)

    #user32=windll.user32
    #p=wintypes.POINT()
    #buffer=create_string_buffer(255)
    #user32.GetCursorPos(byref(p))
    #HWnd=user32.WindowFromPoint(p)
    #print(HWnd)

    
    pg.PAUSE=0.1
    n=0

    while (n<100):
        n=n+1
        print("n:",n)
        qd=680
        pg.moveTo(80,qd,0.5)
        pg.click(button='right')
        pg.moveTo(110,qd+100,0.5) #多选菜单
        pg.click()
        pg.moveTo(80,qd,0.5)
        pg.click() 

        x1=85
        y1=150
        for i in range(5):
            for ii in range(4):
                pg.moveTo(x1+i*100,y1+ii*110,0.1)
                pg.click()


        #删除
        pg.moveTo(420,790,0.5)
        pg.click()
        #确认
        pg.moveTo(320,505,0.5)
        pg.click()
        time.sleep(0.5)
a()
input("op is ok")

 

QQ交流