1、下載
python -m pip install pynput
2、監聽鼠標事件
from pynput import mouse def mouse_move(x, y): """ 鼠標移動事件 :param x: 橫坐標 :param y: 縱坐標 :return: """ pass # print(f'鼠標移動X,Y:{x},{y}') def mouse_click(x, y, button, pressed): """ 鼠標點擊事件 :param x: 橫坐標 :param y: 縱坐標 :param button: 按鈕枚舉對象 Button.left 鼠標左鍵 Button.right 鼠標右鍵 Button.middle 鼠標中鍵 :param pressed: 按下或者是釋放,按下是True釋放是False :return: """ pass if pressed: print('按下鼠標') print(x) print(y) print(button) else: print('釋放鼠標') print(x) print(y) print(button) print(''.center(20, '*')) if 500 <= x <= 550: print('返回False結束監聽') return False def mouse_scroll(x, y, dx, dy): """ 鼠標滾動事件 :param x: 橫坐標 :param y: 縱坐標 :param dx:滾輪的橫坐標方向的移動量,0未移動,1向前面滾動和-1向后面滾動 :param dy:滾輪的縱坐標方向的移動量,0未移動,1向前面滾動和-1向后面滾動 :return: """ pass print(x) print(y) print(dx) print(dy) # 監聽鼠標事件 with mouse.Listener( on_move=mouse_move, # 鼠標移動事件 on_click=mouse_click, # 鼠標點擊事件 on_scroll=mouse_scroll # 鼠標滾動事件 ) as listener: listener.join()
3、監聽鍵盤事件
from pynput.keyboard import Key from pynput.keyboard import Listener def keyboard_press(key): print(key) print(f'key:{key}') if Key.space: print('按下了空格') def keyboard_release(key): print(f'key:{key}') if key == Key.esc: # 如果按下了ESC鍵,則結束監聽 return False with Listener(on_press=keyboard_press, on_release=keyboard_release) as listener: listener.join()
4、控制鼠標
from pynput.mouse import Button from pynput.mouse import Controller mouse = Controller() position = mouse.position # 獲取當前的鼠標位置 print('當前的鼠標位置:{}'.format(position)) mouse.position = (1017, 236) # 設置鼠標的位置,移動鼠標到該位置 print('移動鼠標到坐標點:{}'.format(mouse.position)) mouse.move(5, -5) # 相對於當前鼠標位置位置移動鼠標 mouse.press(Button.left) # 按下鼠標左鍵 mouse.release(Button.left) # 釋放鼠標左鍵 mouse.press(Button.right) # 按下鼠標右鍵 mouse.release(Button.right) # 釋放鼠標右鍵 mouse.press(Button.middle) # 按下鼠標中鍵 mouse.release(Button.middle) # 釋放鼠標中鍵 mouse.click(Button.left, 2) # 雙擊鼠標左鍵 mouse.scroll(0, 2) # 向下滾動滾輪兩次
5、控制鍵盤
from pynput.keyboard import Key, Controller keyboard = Controller() # Press and release space keyboard.press(Key.space) keyboard.release(Key.space) # Type a lower case A; this will work even if no key on the # physical keyboard is labelled 'A' keyboard.press('a') keyboard.release('a') # Type two upper case As keyboard.press('A') keyboard.release('A') with keyboard.pressed(Key.shift): keyboard.press('a') keyboard.release('a') # Type 'Hello World' using the shortcut type method keyboard.type('Hello World')
6、監聽鍵盤時可以這樣看這個key有哪些屬性
按下的鍵不同,key的屬性還不一樣!!!!!!!!!!!!
# -*- encoding=utf-8 -*- from pynput.keyboard import Key from pynput.keyboard import Listener from pynput.mouse import Controller def keyboard_press(key): print(f'按下的key:{key}') print(key.__dict__) if hasattr(key, 'char'): print(f'char:{key.char}') else: print('沒有char屬性') def keyboard_release(key): print(f'key:{key}') if key == Key.esc: # 如果按下了ESC鍵,則結束監聽 return False if __name__ == '__main__': mouse = Controller() with Listener(on_press=keyboard_press, on_release=keyboard_release) as listener: listener.join()
學習鏈接 https://blog.csdn.net/hskjshs/article/details/113521216?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs
官網 https://pythonhosted.org/pynput/