精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

Ubuntu、windows下通過(guò)python模擬鼠標(biāo)按鍵

有時(shí)候我們需要使用python執(zhí)行一些腳本,可能需要讓程序自動(dòng)按鍵或自動(dòng)點(diǎn)擊鼠標(biāo),下面的代碼實(shí)現(xiàn)了對(duì)鍵盤的模擬按鍵

一、在windowS下模擬實(shí)現(xiàn):

需要安裝pypiwin32庫(kù)來(lái)實(shí)現(xiàn),所以需要通過(guò)以下命令來(lái)安裝

pip install pypiwin32

模擬鍵盤:

# coding=utf-8
import win32con
import win32api
import time
key_map = {
    "0": 49, "1": 50, "2": 51, "3": 52, "4": 53, "5": 54, "6": 55, "7": 56, "8": 57, "9": 58,
    "A": 65, "B": 66, "C": 67, "D": 68, "E": 69, "F": 70, "G": 71, "H": 72, "I": 73, "J": 74,
    "K": 75, "L": 76, "M": 77, "N": 78, "O": 79, "P": 80, "Q": 81, "R": 82, "S": 83, "T": 84,
    "U": 85, "V": 86, "W": 87, "X": 88, "Y": 89, "Z": 90
}
 
 
def key_down(key):
    """
    函數(shù)功能:按下按鍵
    參    數(shù):key:按鍵值
    """
    key = key.upper()
    vk_code = key_map[key]
    win32api.keybd_event(vk_code,win32api.MapVirtualKey(vk_code,0),0,0)
 
 
def key_up(key):
    """
    函數(shù)功能:抬起按鍵
    參    數(shù):key:按鍵值
    """
    key = key.upper()
    vk_code = key_map[key]
    win32api.keybd_event(vk_code, win32api.MapVirtualKey(vk_code, 0), win32con.KEYEVENTF_KEYUP, 0)
 
 
def key_press(key):
    """
    函數(shù)功能:點(diǎn)擊按鍵(按下并抬起)
    參    數(shù):key:按鍵值
    """
    key_down(key)
    time.sleep(0.02)
    key_up(key)

模擬鼠標(biāo):

# coding=utf-8
import win32api
import win32con
import win32gui


def move(x, y):
  """
  函數(shù)功能:移動(dòng)鼠標(biāo)到指定位置
  參  數(shù):x:x坐標(biāo)
       y:y坐標(biāo)
  """
  win32api.SetCursorPos((x, y))


def get_cur_pos():
  """
  函數(shù)功能:獲取當(dāng)前鼠標(biāo)坐標(biāo)
  """
  p={"x":0,"y":0}
  pos = win32gui.GetCursorPos()
  p['x']=pos[0]
  p['y']=pos[1]
  return p


def left_click():
  """
  函數(shù)功能:鼠標(biāo)左鍵點(diǎn)擊
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


def right_click():
  """
  函數(shù)功能:鼠標(biāo)右鍵點(diǎn)擊
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN | win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)


def left_down():
  """
  函數(shù)功能:鼠標(biāo)左鍵按下
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)


def left_up():
  """
  函數(shù)功能:鼠標(biāo)左鍵抬起
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


def right_down():
  """
  函數(shù)功能:鼠標(biāo)右鍵按下
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)


def right_up():
  """
  函數(shù)功能:鼠標(biāo)右鍵抬起
  """
  win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)

二、Ubuntu下模擬實(shí)現(xiàn)1(virtkey實(shí)現(xiàn))

virtkey實(shí)現(xiàn),以獨(dú)占的方式,系統(tǒng)運(yùn)行會(huì)中斷,所以不暫時(shí)不滿足自己的需求,繼續(xù)探索

Ubuntu下模擬通過(guò)virtkey這個(gè)庫(kù)來(lái)實(shí)現(xiàn),所以需要通過(guò)以下命令來(lái)安裝

sudo apt-get install python3-virtkey

這個(gè)庫(kù)主要有兩個(gè)API

press_keysym/release_keysym
press_unicode/release_unicode

第一個(gè)接受keysym作為參數(shù),第二個(gè)接受鍵盤的unicode,鍵盤unicode用來(lái)模擬字母鍵還是很方便的,但要模擬Ctrl這樣的鍵一直沒(méi)找到方法,最終找到了一個(gè)關(guān)于keysym的表,解決了問(wèn)題,表如下

至此,我們可以寫出模擬Ctrl+V的代碼

import virtkey
import time

v = virtkey.virtkey()
v.press_keysym(65507) #Ctrl鍵位
v.press_unicode(ord('v')) #模擬字母V
v.release_unicode(ord('v'))
v.release_keysym(65507)
time.sleep(5)
v.press_keysym(65421) #Enter
v.release_keysym(65421)

三、Ubuntu下模擬實(shí)現(xiàn)2(autoPy實(shí)現(xiàn),多平臺(tái)都可以用)

安裝方法:

pip install autopy

模擬按鍵:

at.key.Code類型 

(1)F

(2)控制鍵

(3)方向鍵

使用方法:

toggle(key: Code, down: bool, modifiers: List[Modifier], modifier_delay: float=0)

import autopy as at

at.key.toggle(at.key.Code.UP_ARROW,True,[])
at.key.toggle(at.key.Code.UP_ARROW,False,[])
#按	方向鍵↑,向上移動(dòng)一下
import autopy as at
at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL],8)

print(123)
#當(dāng)at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL],8)執(zhí)行并過(guò)了8秒才執(zhí)行這句,相當(dāng)于sleep(8)

at.key.toggle(at.key.Code.CONTROL,False,[at.key.Modifier.CONTROL])
#control鍵保持按下了8秒,關(guān)閉的時(shí)候直接關(guān)就行了

PS:注意釋放,要不然會(huì)電腦會(huì)一直按著那個(gè)修飾鍵,直到你終止程序

tap(key:Code, modifiers: List[Modifier], delay: float=0)

import autopy as at
at.key.tap(at.key.Code.CONTROL,[at.key.Modifier.CONTROL],5)
#按住CONTROL鍵保持了10秒
print(123)
#之后又過(guò)了5秒才輸出123

at.key.type_string(string:str,wpm:float=0)

import autopy as at
at.key.type_string('Hello123',0)
#Hello123
#快速地打出
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關(guān)注 19
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧
主站蜘蛛池模板: 日韩欧美国产一区二区 | 免费91麻豆精品国产自产在线观看 | 一二三四视频在线观看日本 | 免费观看Aⅴ成人片 | 少妇被粗大的猛烈进出免费视频 | 91国内精品 | 一个色综合网 | 在线观看亚洲欧美 | 亚洲精品免费在线视频 | a∨网站| 亚洲av成人综合网 | 亚洲天堂久久久久 | 2021狠狠操 | 国产成人亚洲欧洲在线观看 | 理论片免费ā片在线观看 | 一级黄色大片视频 | 男人天堂av影院 | 成熟女人牲交片免费观看视频 | 一级做a爰片久久毛片16 | 国产精品久久久久久一区 | 亚洲成人一区二区三区 | "欧美 日韩 国产精品免费观看" | 精品久久久久久久久久中文字幕 | 香蕉成年人视频 | 国产一区二区三区免费 | 农村裸体老女人videoshd | 久色视频| 亚洲AV日韩AV一区二区三曲 | 国产三级a三级三级大全 | 亚洲成在人网站av天堂 | 笼中女囚在线观看 | a级毛片免费高清在线播放 欧美在线观看19 | 精品久久久久久久久久免费影院8 | 欧美贵妇videos办公室 | 亚洲高清国产视频 | 国产91在线亚洲 | 成人免费在线观看网站 | 99精品在线免费 | 久久久久亚洲AV无码A片男男 | 性欧美三级 | 国产91精品入口 |