小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python 鍵盤(pán)/鼠標(biāo)控制

 dinghj 2019-04-26

鍵盤(pán)控制


需要用到keyboard模塊(pip install keyboard)


按鍵字符

#字符'1''a'...#控制'ctrl''alt''shift''enter''esc''f1'...#方向鍵'up''down''left''right'#組合按鍵'ctrl'+'alt'+'a'...

常用方法


wait()

監(jiān)聽(tīng)按鍵,如果沒(méi)設(shè)置按鍵,將會(huì)一直監(jiān)聽(tīng)這句之前的按鍵;如果設(shè)置了按鍵,那么在按下該按鍵后就會(huì)停止監(jiān)聽(tīng),并執(zhí)行后面的語(yǔ)句,舉例:


import keyboard

print(0)
keyboard.wait('a')#在按下a之前后面的語(yǔ)句都不會(huì)執(zhí)行,下面同理print(1)
keyboard.wait('b')
print(2)
keyboard.wait('c')
print(3)
keyboard.wait()

結(jié)果:0123#繼續(xù)監(jiān)聽(tīng)#只有按順序按下abc(中間過(guò)程隨便按不干擾)才能輸出0123,但因?yàn)樽詈笠粋€(gè)沒(méi)設(shè)置按鍵,所以會(huì)一直監(jiān)聽(tīng)下去

add_hotkey()

設(shè)置熱鍵,一般和wait()組合使用,在wait監(jiān)聽(tīng)下,當(dāng)按下熱鍵時(shí)會(huì)執(zhí)行對(duì)應(yīng)函數(shù),舉例:


import keyboard  #監(jiān)聽(tīng)鍵盤(pán)def test_a():print('aaa')def test(x):print(x)if __name__ == '__main__':
    keyboard.add_hotkey('f1', test_a)#按f1輸出aaakeyboard.add_hotkey('ctrl+alt', test, args=('b',))#按ctrl+alt輸出bkeyboard.wait()#wait里也可以設(shè)置按鍵,說(shuō)明當(dāng)按到該鍵時(shí)結(jié)束

record()

記錄鍵盤(pán)事件,如果加上until參數(shù),可以設(shè)置當(dāng)按下某按鍵時(shí)結(jié)束監(jiān)聽(tīng),和wait方法有點(diǎn)像,舉例:


import keyboard

keyboard.add_hotkey('ctrl', print, args=('aaa',))
keyboard.add_hotkey('alt', print, args=('bbb',))

recorded = keyboard.record(until='esc')#當(dāng)按下esc時(shí)結(jié)束按鍵監(jiān)聽(tīng),并輸出所有按鍵事件print(recorded)
結(jié)果為:
aaa
aaa
bbb
[KeyboardEvent(ctrl down), KeyboardEvent(ctrl up), KeyboardEvent(ctrl down), 
KeyboardEvent(ctrl up), KeyboardEvent(alt down), KeyboardEvent(alt up),
KeyboardEvent(esc down)]

hook()

綁定所有按鍵事件,當(dāng)只要有按鍵按下/松開(kāi)時(shí)就會(huì)觸發(fā)的回調(diào)函數(shù),舉例:


import keyboarddef abc(x):print(x)
    print("111")

keyboard.hook(abc)#按下任何按鍵時(shí),都會(huì)調(diào)用abc,其中一定會(huì)傳一個(gè)值,就是鍵盤(pán)事件keyboard.wait()

結(jié)果:
KeyboardEvent(w down)111KeyboardEvent(w up)111KeyboardEvent(space down)111KeyboardEvent(space up)111KeyboardEvent(tab down)111KeyboardEvent(tab up)111KeyboardEvent(ctrl down)111...

KeyboardEvent()

一個(gè)按鍵事件,里面有3個(gè)常用參數(shù):event_typescan_code、name,分別代表按鍵類(lèi)型(down/up)、按鍵號(hào)(每個(gè)鍵都有對(duì)應(yīng)的)和按鍵名,舉例:


import keyboarddef abc(x):a = keyboard.KeyboardEvent('down', 28, 'enter')#按鍵事件a為按下enter鍵,第二個(gè)參數(shù)如果不知道每個(gè)按鍵的值就隨便寫(xiě),#如果想知道按鍵的值可以用hook綁定所有事件后,輸出x.scan_code即可if x.event_type == 'down' and x.name == a.name:
        print("你按下了enter鍵")#當(dāng)監(jiān)聽(tīng)的事件為enter鍵,且是按下的時(shí)候keyboard.hook(abc)# keyboard.hook_key('enter', bcd)# recorded = keyboard.record(until='esc')keyboard.wait()

結(jié)果:

你按下了enter鍵

你按下了enter鍵

更多參考

https:///project/keyboard/


鼠標(biāo)控制


需要用到pyautogui模塊(pip install pyautogui


常用方法


position()

獲取鼠標(biāo)位置,舉例:


import pyautogui as pag    #監(jiān)聽(tīng)鼠標(biāo)x1, y1 = pag.position()
print(x1, y1) 
#輸出鼠標(biāo)當(dāng)前位置

實(shí)例-結(jié)合鼠標(biāo)鍵盤(pán)截圖

(按下兩次alt+ctrl來(lái)確定圖片左上角和右上角,然后截圖保存)


import keyboard  #監(jiān)聽(tīng)鍵盤(pán)import pyautogui as pag    #監(jiān)聽(tīng)鼠標(biāo)from PIL import  ImageGrab   #截圖、讀取圖片、保存圖片if keyboard.wait(hotkey='ctrl+alt') == None:
    x1, y1 = pag.position()if keyboard.wait(hotkey='ctrl+alt') == None:
        x2, y2 = pag.position()
        image = ImageGrab.grab((x1, y1, x2, y2))
        image.save("screen.png")

click()

鼠標(biāo)點(diǎn)擊控制,舉例:


import pyautogui
 
pyautogui.click(button='right')#點(diǎn)擊鼠標(biāo)右鍵pyautogui.click(100, 100)#要在指定位置點(diǎn)擊左鍵





         

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多