擊敗無聊的辦公室重復(fù)操作——pyautogui使用詳解

寫在前面的話

最近看了一篇大神用pyautogui和pywin32寫出跳一跳外掛的文章旦事,心里很是佩服忧便。于是今天一摸電腦就先看了pywin32族吻,你猜怎么著?

完全看不懂珠增!你沒有看錯超歌,好復(fù)雜啊。

老師教導(dǎo)我們碰到看不懂的題目怎么辦切平?當(dāng)然是放棄啦握础,哈哈哈哈!(不要打我)

轉(zhuǎn)而看pyautogui悴品,這個還行禀综,不是很復(fù)雜,一天下來 苔严,基本已經(jīng)掌握定枷。本著好東西要分享的原則,根據(jù)官方文檔的順序?qū)⑹褂梅椒ń榻B如下:

鼠標基本操作

0,0       X increases -->
+---------------------------+
|                           | Y increases
|                           |     |
|   1920 x 1080 screen      |     |
|                           |     V
|                           |
|                           |
+---------------------------+ 1919, 1079

這是鼠標操作的(x,y)坐標圖届氢∏分希可以看出原點位于屏幕左上角,水平為x方向,垂直為y方向岖妄,每一個點都可以用坐標點來表示型将。看到這里荐虐,我仿佛回到了初三的數(shù)學(xué)課堂……

確定x,y在屏幕上七兜,用函數(shù)onscreen

pyautogui.onScreen(0,0)
True

確定屏幕尺寸,用函數(shù)sizi()

pyautogui.size()

移動鼠標

pyautogui.moveTo(100, 200) #絕對移動
pyautogui.moveRel(100, 200)#相對移動

拖拽鼠標

pyautogui.dragTo(100, 200, button='left')#絕對移動
pyautogui.dragRel(30, 0, 2, button='right') #相對移動

漸變移動(不重要)

pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)     # start slow, end fast
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)    # start fast, end slow
pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)  # start and end fast, slow in middle
pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)   # bounce at the end
pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)  # rubber band at the end

鼠標點擊

pyautogui.click(x=100, y=200)
pyautogui.click(clicks=2) 
pyautogui.doubleClick(buttton='right')

鼠標按下和抬起

pyautogui.mouseDown()
pyautogui.mouseUp()

拖拽鼠標

pyautogui.scroll(10, x=100, y=100)  # move mouse cursor to 100, 200, then scroll up 10 "clicks"

鍵盤基本操作

輸入字符

pyautogui.typewrite('Hello world!')  

按下鍵福扬,抬起鍵和press(可以傳列表)

yautogui.keyDown('shift')  # hold down the shift key
pyautogui.press('left')     # press the left arrow key
pyautogui.press('left')     # press the left arrow key
pyautogui.press('left')     # press the left arrow key
pyautogui.keyUp('shift')    # release the shift key

組合熱鍵

pyautogui.hotkey('ctrl', 'shift', 'esc')

消息框設(shè)置

pyautogui提供了消息框功能腕铸,分別問確認方式、確認和取消方式和輸入框模式

pyautogui.alert('This displays some text with an OK button.')
pyautogui.confirm('This displays text and has an OK and Cancel button.')
'OK'
pyautogui.prompt('This lets the user type in a string and press OK.')
'This is what I typed in.'

截屏功能

為了方便屏幕點擊铛碑,pyautogui提供了一個截屏功能狠裹,具體如下:

  • 可以直接截屏,當(dāng)變量使用
  • 也可以截屏汽烦,保存在當(dāng)前文件夾
  • 截屏功能有一個region函數(shù)涛菠,用來選擇性截屏,用一個tuple來表示left,top,width,height
  • 截屏后可以用locateOnScreen()來測量截屏大小
  • center()函數(shù)用了確定截屏中心點x,y
  • 確定某點的顏色
im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')
im = pyautogui.screenshot(region=(0,0, 300, 400))
pyautogui.locateOnScreen('calc7key.png')
pyautogui.center(button7location)
 pyautogui.locateCenterOnScreen('calc7key.png')
im = pyautogui.screenshot()
im.getpixel((100, 200))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刹缝,一起剝皮案震驚了整個濱河市碗暗,隨后出現(xiàn)的幾起案子颈将,更是在濱河造成了極大的恐慌梢夯,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晴圾,死亡現(xiàn)場離奇詭異颂砸,居然都是意外死亡,警方通過查閱死者的電腦和手機死姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門人乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人都毒,你說我怎么就攤上這事色罚。” “怎么了账劲?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵戳护,是天一觀的道長。 經(jīng)常有香客問我瀑焦,道長腌且,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任榛瓮,我火速辦了婚禮铺董,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘禀晓。我一直安慰自己精续,他們只是感情好坝锰,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著重付,像睡著了一般什黑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堪夭,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天愕把,我揣著相機與錄音,去河邊找鬼森爽。 笑死恨豁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爬迟。 我是一名探鬼主播橘蜜,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼付呕!你這毒婦竟也來了计福?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤徽职,失蹤者是張志新(化名)和其女友劉穎象颖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姆钉,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡说订,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了潮瓶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陶冷。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毯辅,靈堂內(nèi)的尸體忽然破棺而出埂伦,到底是詐尸還是另有隱情,我是刑警寧澤思恐,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布沾谜,位于F島的核電站,受9級特大地震影響壁袄,放射性物質(zhì)發(fā)生泄漏类早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一嗜逻、第九天 我趴在偏房一處隱蔽的房頂上張望涩僻。 院中可真熱鬧,春花似錦、人聲如沸逆日。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽室抽。三九已至搪哪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坪圾,已是汗流浹背晓折。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兽泄,地道東北人漓概。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像病梢,于是被迫代替她去往敵國和親胃珍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容