声明:只是用来学习,请不要使用非法用途,责任自负
工具
使用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