Pynput控制器中的热键

问题描述

如何使用Pynput Controller模拟热键,例如:shift + s + down 我希望同时按下例如中的所有三个键

我想要这样的东西:

from pynput.keyboard import Key,Controller

keyboard = Controller()

keyboard.press(Key.shift + 's' + Key.right)
time.sleep(0.1)            
keyboard.release(Key.shift + 's' + Key.right)

 

解决方法

检查Keyhere,以找到所有可用键的列表。

您可以使用函数.press()模拟压力:

from pynput.keyboard import Key,Controller
import time
import threading

class MyClicker():
    def __init__(self,keys):
        self.keys = keys
        self.controller = Controller()

        self.start_press = False

    def Press(self,key):
        while not self.start_press:
            pass
        self.controller.press(key)

    def Run(self):
        #Create a thread for each key press
        for press_key in self.keys:
            threading.Thread(target=self.Press,args=(press_key,)).start()
        
        self.start_press = True
        time.sleep(0.1)
        self.start_press = False

        for release_key in reversed(self.keys):
            self.controller.release(release_key)

MyClicker([Key.shift,'s',Key.down]).Run()