Как заставить программу спамить указанную клавишу мгновенно, если нажата комбинация из двух клавиш? - PullRequest
0 голосов
/ 04 января 2019

Я бы хотел, чтобы этот скрипт спамял определенную указанную горячую клавишу (в данном случае q, e или t), если комбинация клавиш «´» и горячей клавиши нажата одновременно. Следующий код выполняет эту функцию на базовом уровне, но по какой-то причине задержка составляет около 0,5 с. между нажатыми кнопками и инструментом, начинающим спамить клавишу.

Это то, что я имею до сих пор:

      # -*- coding: utf-8 -*-
      import keyboard
      from time import sleep
      import win32api
      import win32gui
      from tkinter import *
      import win32gui
      import threading
      import datetime

      keypress = False
      key = '´'
      ww= False
      oo=False
      c=0
      letters = ["e","q","t"]
      t = None
      threads = []

      def isp(key, letter):
          keyboard.press_and_release(key)
          keyboard.press_and_release(key)

      def presskey():
          for i in letters:
              if keyboard.is_pressed(key) and keyboard.is_pressed(i):
                  isp(key, i)

      def checkpress(w):
          oh = ""
          for i in w:
              if(keyboard.is_pressed(i)):
                  oh = i
          print("checkpressresult: "+oh)
          return oh


      while True:
          print("isp: "+str(keyboard.is_pressed(key)))
          print("ww: "+str(ww))
          print("kp: "+str(keypress))
          if ww and keyboard.is_pressed(key) and checkpress(letters)!="":
              t = threading.Thread(target=presskey, args=())
              t.start()
              threads.append(t)
              c=c+1
          sleep(0.001)

          if (keypress and not keyboard.is_pressed(key)) or c>50:
              keypress = False
              ww= False
              c = 0
              for x in threads:
                  x.join()

          elif keyboard.is_pressed(key) and not keypress:
              ww = True
              keypress = True
...