日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pyautogui typewrite_解放双手:Pyautogui帮你work

發(fā)布時(shí)間:2024/7/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyautogui typewrite_解放双手:Pyautogui帮你work 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天介紹一個(gè)很有用的python庫(kù)——Pyautogui,它可以通過(guò)屏幕的xy坐標(biāo)系統(tǒng)來(lái)確定目標(biāo)位置,進(jìn)而控制鼠標(biāo)和鍵盤(pán)發(fā)送虛擬的點(diǎn)擊和輸入任務(wù)。這對(duì)于你要完成機(jī)械重復(fù)枯燥的電腦操作來(lái)說(shuō)非常地方便。

安裝Pyautogui庫(kù)很簡(jiǎn)單,命令窗口輸入:

pip install pyautogui

1 Pyautogui的坐標(biāo)軸系統(tǒng)

Pyautogui的鼠標(biāo)函數(shù)使用想x,y坐標(biāo),原點(diǎn)在屏幕的左上角,向右為x軸正方向,向下為y軸正方向。知道了這個(gè)就可以任意定位屏幕上的點(diǎn)啦。

不過(guò),想要準(zhǔn)確知道屏幕上的坐標(biāo)也不是一件容易的事,這里推薦一個(gè)超級(jí)好用的工具——FastStone Capture 。這個(gè)小工具除了定位坐標(biāo),還能各種花式截圖,包括形狀截圖,滾動(dòng)截圖,并且還能錄制屏幕,取色。

2 控制鼠標(biāo)

(1)確定鼠標(biāo)當(dāng)前位置

pyautogui.position() #確定鼠標(biāo)當(dāng)前位置,返回x,y坐標(biāo)的元組

(2)移動(dòng)

pyautogui.moveTo(x,y[,duration = t]) # 將鼠標(biāo)移動(dòng)到屏幕指定位置, #x,y是目標(biāo)位置的橫縱坐標(biāo),duration指定鼠標(biāo)光標(biāo)移動(dòng)到目標(biāo)位置 #所需要的秒數(shù),t可以為整數(shù)或浮點(diǎn)數(shù),省略duration參數(shù)表示 #立即將光標(biāo)移動(dòng)到指定位置(在PyAutoGUI函數(shù)中,所有的duration #關(guān)鍵字參數(shù)都是可選的) #Attention:所有傳入x,y坐標(biāo)的地方,都可以用坐標(biāo)x,y #的元組或列表替代,(x,y)/[x,y]pyautogui.moveRel(x,y[,duration = t]) #相對(duì)于當(dāng)前位置移動(dòng)光標(biāo), #這里的x,y不再是目標(biāo)位置的坐標(biāo),而是偏移量, #如,pyautogui.moveRel(100,0,duration=0.25) #表示光標(biāo)相對(duì)于當(dāng)前所在位置向右移動(dòng)100個(gè)像素

(3)點(diǎn)擊

完整的點(diǎn)擊:按下鼠標(biāo)按鍵,然后放開(kāi),同時(shí)不移動(dòng)位置

pyautogui.mouseDown() #按下鼠標(biāo)按鍵(左鍵)pyautogui.mouseUp() #釋放鼠標(biāo)按鍵(左鍵)pyautogui.click() #向計(jì)算機(jī)發(fā)送虛擬的鼠標(biāo)點(diǎn)擊(click()函數(shù)只是前面兩個(gè)函數(shù)調(diào)用的方便封裝) # 默認(rèn)在當(dāng)前光標(biāo)位置,使用鼠標(biāo)左鍵點(diǎn)擊pyautogui.click([x,y,button='left/right/middle']) #在(x,y)處點(diǎn)擊鼠標(biāo)左鍵、右鍵、中鍵 #但不推薦使用這種方法,下面這種方法效果更好 #pyautogui.moveTo(x,y,duration=t) #pyautogui.click()pyautogui.doubleClick() #雙擊鼠標(biāo)左鍵pyautogui.rightClick() #單擊鼠標(biāo)右鍵pyautogui.middleClick() #單擊鼠標(biāo)中鍵

(4)拖動(dòng)

拖動(dòng):按住一個(gè)鍵不放,同時(shí)移動(dòng)鼠標(biāo)

pyautogui.dragTo(x,y[,duration=t) # 將鼠標(biāo)拖動(dòng)到指定位置 #x,y:x坐標(biāo),y坐標(biāo)pyautogui.dragRel(x,y[,duration=t]) # 將鼠標(biāo)拖動(dòng)到相對(duì)當(dāng)前位置的位置 #x,y:水平移動(dòng), 垂直移動(dòng)

(5)滾動(dòng)

pyautogui.scroll() #控制窗口上下滾動(dòng)(滾動(dòng)發(fā)生在鼠標(biāo)的當(dāng)前位置) #正數(shù)表示向上滾動(dòng),負(fù)數(shù)表示向下滾動(dòng), #滾動(dòng)單位的大小需要具體嘗試

點(diǎn)擊鼠標(biāo)的動(dòng)作最好跟time.sleep使用,來(lái)控制點(diǎn)擊速度,不然太快不好掌握。最近我DEFORM要計(jì)算的DB文件太多了,為了趕時(shí)間,我想讓程序晚上也能計(jì)算。但我要睡覺(jué)啊,所以就寫(xiě)了下面一個(gè)很簡(jiǎn)單的例子。

import pyautogui as ptimport timei = 1pt.moveTo(422,141) #移動(dòng)到第一個(gè)DB文件處time.sleep(2) #停頓2spt.click(button='left') #選中DB文件while i<11: #11個(gè)DB文件 pt.moveTo(756,69) #移到運(yùn)算按鈕 time.sleep(2)   #停頓2s pt.click(button='left') #點(diǎn)擊運(yùn)算按鈕 pt.moveTo(950,545) #移到確定按鈕 pt.click(button='left') #點(diǎn)擊確定按鈕 time.sleep(1800) #等待DEFORM一個(gè)DB文件算完 pt.moveTo(422,141+i*21) #移到下一個(gè)DB time.sleep(2) pt.click(button='left') #點(diǎn)擊下一個(gè)DB i+=1

3 控制鍵盤(pán)

(1)輸入字符串

直接通過(guò)typewrite方法輸入字符串,這種方法不能輸入中文,不過(guò)可以通過(guò)切換成中文輸入法達(dá)到輸入中文的目的。

pyautogui.typewrite(s[,duration=t]) #向文本框發(fā)送字符串 #可選的duration參數(shù)在輸入單個(gè)字符之間添加短暫的時(shí)間暫停 #Attention:只能用于輸入英文

切換中文輸入法后輸入下面代碼,能打出"王"字,當(dāng)然還要配合enter鍵使用。

pt.typewrite('wang')

(2)輸入鍵字符串

用來(lái)輸入Shift鍵、ESC鍵、箭頭鍵等不能通過(guò)字符文本來(lái)輸入的

pyautogui.typewrite([鍵盤(pán)鍵字符串]) #除了單個(gè)字符串,還可以向typewrite()函數(shù)傳遞鍵字符串的列表 #如 pyautogui.typewrite(['a','b','left','left','X','Y']) #按'a'鍵,'b'鍵,然后按左箭頭兩次,然后按'X'和'Y' #輸出結(jié)果為XYabpyautogui.keyDown() #根據(jù)傳入的鍵字符串,向計(jì)算機(jī)發(fā)送虛擬的按鍵(按下)pyautogui.keyUp() #根據(jù)傳入的鍵字符串,向計(jì)算機(jī)發(fā)送虛擬的釋放(釋放)pyautogui.press() #前面兩個(gè)函數(shù)的封裝,模擬完整的擊鍵(按下并釋放)

注意,輸入鍵盤(pán)字符串的時(shí)候括號(hào)里面的中括號(hào)不能少,不然就變成輸入字符串了,keyUp,keyDown,press方法是模擬按鍵盤(pán)的操作達(dá)到輸入字符。同樣,也可以通過(guò)切換中文輸入法來(lái)輸入中文。比如下面的代碼可以打出一個(gè)"玩"。

pt.keyDown('w')pt.keyDown('a')pt.keyDown('n')

只能一個(gè)一個(gè)拼音輸入,略顯麻煩!

完整鍵字符串:

鍵盤(pán)鍵字符串 含義'a','b','c','A','C','1','2','3', 單個(gè)字符的鍵'!','@','#'等'enter' 回車'esc' ESC鍵'shiftleft','shiftright' 左右Shift鍵'altleft','altright' 左右Alt鍵'ctrlleft','ctrlright' 左右Ctrl鍵'tab'(or '') Tab鍵'backspace','delete' Backspace鍵和Delete鍵'pageup','pagedown' Page Up 和Page Down鍵'home','end' Home鍵和End鍵'up','down','left','right' 上下左右箭頭鍵'f1','f2','f3'等 F1至F12鍵'volumemute','volumeup',volumedown' 靜音,放大音量和減小音量鍵'pause' 暫停鍵'capslock','numlock','scrolllock' Caps Lock,Num Lock和 Scroll Lock鍵'insert' Insert鍵'printscreen' Prtsc或Print Screen鍵'winleft','winright' 左右Win鍵(在windows上)'command' Command鍵(在OS X上)'option' Option鍵(在OS X上)

(3)快捷鍵組合:

pyautogui.hotkey('ctrl','c') #按住Ctrl鍵,然后按C鍵,然后釋放C鍵和Ctrl鍵 #相當(dāng)于pyautogui.keyDown('ctrl')pyautogui.keyDown('c')pyautogui.keyUp('c')pyautogui.keyUp('ctrl')

總結(jié)

以上是生活随笔為你收集整理的pyautogui typewrite_解放双手:Pyautogui帮你work的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。