您好,登錄后才能下訂單哦!
小編給大家分享一下python模擬點擊中怎么實現區域的不同按鍵,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
假如想要實現鼠標左鍵雙擊時根據所在的不同區域實現不同的自動按鍵。
思路:監控鼠標事件,判斷按鍵類型,如果是判斷雙擊保留上一次的點擊時間,自動按鍵最好新建線程,不然會卡在主線程。
#coding=utf-8 from pymouse import PyMouse, PyMouseEvent from pykeyboard import PyKeyboard, PyKeyboardEvent import time, threading import math ## 初始化參數區(全局變量) stop = False interval = 1 is_running = False times = 10 keys_mapping = { 0 : ['1', '2', '3', '4'], 10 : ['a', 'b'], 1 : ['c', 'd'], 11 : ['e', 'f'], } # 左上:0 右上:10 左下:1 右下:11 mouse = PyMouse() keyboard = PyKeyboard() x_dim, y_dim = mouse.screen_size() ## 循環按鍵 def loop(key): global stop global is_running global keyboard is_running = True for i in range(times): for k in keys_mapping[key]: if stop: print('stop') is_running = False return print(key, k) #keyboard.tap_key(k) time.sleep(interval) is_running = False ## 監控鼠標 class Clickonacci(PyMouseEvent): last_ts = None last_x = None last_y = None last_button = None def __init__(self): PyMouseEvent.__init__(self) ## hori:1-上,-1-下 def scroll(self, x, y, hori, press): print(x, y, hori) def click(self, x, y, button, press): if press: return global stop global x_dim global y_dim ts = time.time() # button:1-左鍵,2-右鍵,3-中鍵 # press: True-按下,False-釋放 if button == 1: ## 判斷雙擊 if self.last_ts and ts-self.last_ts<0.3 and self.last_button==button: print('double click') if is_running == True: stop = True time.sleep(interval) stop = False ## 計算類型 key = 10*math.floor(2.0*x/x_dim) + math.floor(2.0*y/y_dim) t = threading.Thread(target=loop, name='LoopThread', args=(key,)) t.start() self.last_ts = ts self.last_x = x self.last_y = y self.last_button = button else: stop = True if __name__ == '__main__': #main() C = Clickonacci() C.run()
以上是“python模擬點擊中怎么實現區域的不同按鍵”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。