【python+pywin32/ctypes】控制鼠标键盘

个人觉得这个方法在自动化测试中可以应对很多突发情况,比如有一个元素很难定位,不想费劲研究了,或者不会windows自动化时还有操作app的需求。但是移植性和稳定性是真的不好,还是不推荐使用这个方法做自动化。应急还是不错的
导包

from ctypes import windll
import win32api
import win32con

单独按一个键时用这两行代码,第一行代表按下,第二行代表抬起。不写第二行就视为长按。13代表enter,想按别的键就把13改为相对应的键值,用的时候就在下面链接找(借鉴来的)

win32api.keybd_event(13, 0, 0, 0)  # enter
win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)

也可以实现组合键,ctrl+s举例

win32api.keybd_event(17, 0, 0, 0)  # ctrl
win32api.keybd_event(83, 0, 0, 0)  # s
win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0)

控制鼠标,这个坐标可以用qq截图得到,截选画面时会有坐标,很好用(我也是上网搜到的,真心好用)第一句是将鼠标移动到当前坐标,后两句是将鼠标按下和抬起,leftdown(LEFTDOWN)和leftup是左键按下抬起,想进行右键操作将left改为right即可

windll.user32.SetCursorPos(267, 404)  # 点击当前坐标
time.sleep(0.5)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

键值链接
https://blog.csdn.net/mystonelxj/article/details/88184829

学习笔记,仅供参考

你可能感兴趣的:(【python+pywin32/ctypes】控制鼠标键盘)