小編給大家分享一下python模擬點(diǎn)擊中怎么實(shí)現(xiàn)區(qū)域的不同按鍵,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為工布江達(dá)企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),工布江達(dá)網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
假如想要實(shí)現(xiàn)鼠標(biāo)左鍵雙擊時(shí)根據(jù)所在的不同區(qū)域?qū)崿F(xiàn)不同的自動(dòng)按鍵。
思路:監(jiān)控鼠標(biāo)事件,判斷按鍵類型,如果是判斷雙擊保留上一次的點(diǎn)擊時(shí)間,自動(dòng)按鍵最好新建線程,不然會(huì)卡在主線程。
#coding=utf-8 from pymouse import PyMouse, PyMouseEvent from pykeyboard import PyKeyboard, PyKeyboardEvent import time, threading import math ## 初始化參數(shù)區(qū)(全局變量) 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() ## 循環(huán)按鍵 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 ## 監(jiān)控鼠標(biāo) 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-按下,F(xiàn)alse-釋放 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 ## 計(jì)算類型 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模擬點(diǎn)擊中怎么實(shí)現(xiàn)區(qū)域的不同按鍵”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!