1. 程式人生 > 實用技巧 >pynput Python控制鍵盤,假如你女朋友不回你訊息,你可以這麼玩

pynput Python控制鍵盤,假如你女朋友不回你訊息,你可以這麼玩

目錄

pynput 滑鼠鍵盤按鍵精靈

官方網址:https://pypi.org/project/pynput/

查詢其詳細API文件,可以參考 https://pynput.readthedocs.io/en/latest/index.html

pynput這個庫讓你可以控制和監控輸入裝置。

對於每一種輸入裝置,它包含一個子包來控制和監控該種輸入裝置:

  • pynput.mouse:包含控制和監控滑鼠或者觸控板的類。
  • pynput.keyboard:包含控制和監控鍵盤的類。

這個庫核心可以監測控制我們的鍵盤和滑鼠,看起來用在爬蟲上面也是非常不錯的

安裝

pip install pynput

基本用法

安裝完畢,測試一下該庫是否可以正常執行,執行結果是獲取當前滑鼠的座標

from pynput.mouse import Button, Controller

mouse = Controller()

# 獲取滑鼠座標
print('當前滑鼠的座標是 {0}'.format(mouse.position))

from pynput.mouse import Button, Controller
import time 

#set pointer positon
mouse.position = (277, 645)
print('now we have moved it to {0}'.format(mouse.position))

#滑鼠移動(x,y)個距離
mouse.move(5, -5)
print(mouse.position)

mouse.press(Button.left)
mouse.release(Button.left)

#Double click
mouse.click(Button.left, 1)

#scroll two steps down
mouse.scroll(0, 500)

滑鼠監控事件

from pynput import mouse

def on_move(x, y ):
    print('Pointer moved to {0}'.format((x,y)))

def on_click(x, y , button, pressed):
    print('{0} at {1}'.format('Pressed' if pressed else 'Released', (x, y)))
    if not pressed:
        return False

def on_scroll(x, y ,dx, dy):
    print('scrolled {0} at {1}'.format('down' if dy < 0 else 'up',(x, y)))

while True:
    with mouse.Listener( on_move = on_move,on_click = on_click,on_scroll = on_scroll) as listener:
        listener.join()

鍵盤輸入用法

from pynput.keyboard import Key, Controller

keyboard = Controller()
# 按下空格和釋放空格
# Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)
# 按下a鍵和釋放a鍵
# 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')
# or
with keyboard.pressed(Key.shift):
    keyboard.press('a')
    keyboard.release('a')

# type 'hello world ' using the shortcut type method
keyboard.type('hello world')

鍵盤監聽

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(key.char))
    except AttributeError:
        print('special key {0} pressed'.format(key))


def on_release(key):
    print('{0} released'.format(key))
    if key == keyboard.Key.esc:
        return False


while True:
    with keyboard.Listener(
            on_press=on_press,
            on_release=on_release) as listener:
        listener.join()

假如你女朋友不回你訊息,你可以這麼玩

不停的給她發訊息

你要換成中文輸入法狀態

微信QQ都可以

from pynput import keyboard
from pynput.mouse import Button, Controller
from pynput.keyboard import Key
import time
import random

time.sleep(3)
my_mouse = Controller()
my_keyboard = keyboard.Controller()

i = 0
while i < 100:
    i += 1
    if i != 100:
        mes = ['xiangni', 'aini', 'zaiganmane', 'laopo']
        my_keyboard.type(random.choice(mes))
        my_keyboard.press(Key.space)
        my_keyboard.release(Key.space)

        my_mouse.position = (1689, 773)
        my_mouse.press(Button.left)
        my_mouse.release(Button.left)
        time.sleep(2)
    else:
        break

女朋友感動哭了(當然,你得先有個女朋友)