学弟抱怨说期末选修网课太多,于是我教他用python如何实现自动刷课,简直不要太爽!

声明:只是用来学习,请不要使用非法用途,责任自负
工具

使用python 3.6版本,安装如下库:
安装win32api
pip3 install pywin32
安装PIL
pip install Pillow
安装pyautogui
pip install pyautogui
安装numpy
pip install numpy
安装cv2
pip install opencv-python
安装matplotlib
pip install matplotlib

使用SPY查看相关窗口标题, 类名。此标题唯一, 故可以以此来查找相关窗口

得到窗口句柄

    window_title = '课件学习 - Google Chrome'
    screen_width = win32api.GetSystemMetrics(0)
    screen_height = win32api.GetSystemMetrics(1) 
    hwnd = win32gui.FindWindow(win32con.NULL,window_title) 
    if hwnd == 0 :
        error_exit('%s not found' % window_title)
        exit()
    else:
        print('hwnd = %x'%(hwnd))

    window_left,window_top,window_right,window_bottom = win32gui.GetWindowRect(hwnd)



主循环

原理:主要通信截图屏幕的图片,然后通过模板图像与之比较,如果出现我们需要的场景,那么得到对应的位置坐标,然后自动调用点击功能,从而实现自动化操作。那么这里主要使用opencv的两个算法,一个是图像相似度打分算法,另一个是图像搜索算法。

 while True:
        grab_image = snapshot.grab_screen(deal_left,deal_top,deal_right,deal_bottom)
        #grab_image.show()
        grab_image.save(r'.\tmp_output\full_screen.png')

        #big pic size = 1936x1056
        full_screen_w = 1936
        full_screen_h = 1056
        
        pixel_core_x = 877.0
        pixel_core_y = 25.0
        
        deal_left = window_left #window_left + kejian_x / full_screen_w * window_width - 100
   
  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值