<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
恭喜你,學明白類,你已經學會所有基本知識了。
這章算是一個娛樂篇,十分簡單,瞭解一下pyautogui模組,這算是比較好學還趣味性十足的,而且可以做許多小程式。
本文會對ptautogui模組進行詳細的學習and講解。寫作不易,支援一波~
pyautogui模組,規範一點大寫就是PyAutoGUI模組,是用來實現自動化指令碼的一個十分得力的小助手。他可以操控鍵盤和滑鼠,可以寫許多工具。
安裝的話就用我們萬能的pip包,相信大家已經安裝過了,沒安裝的話網上有許多教學可以學。
win+R,輸入cmd,再輸入:
pip install pyautogui
你就安裝成功了。之後可以輸入import pyautogui,沒報錯就是成功。
接下來,我們就可以玩轉滑鼠和鍵盤了。模組名字比較長,建議用as取一個別名,但可別取成py啊。
我們先學習滑鼠移動的相關。first瞭解一下計算機的座標系統。
計算機顯示器的解析度一般是1920x1080,有的不一樣,我們用size函數來獲取使用者顯示器的解析度。他會返回兩個值,要用兩個變數儲存。
import pyautogui as gui a,b=gui.size() print(a,b)
輸出:1920 1080(根據使用者顯示器大小而定寬度、長度)
注意,就算是解析度我們也要用“減一”原則,例如你的顯示器寬度1920,那麼最左邊是0,最右邊是1919,1920就越界了。
如果我們想讓滑鼠移動,就要用moveTo,注意T是大寫。他可以填入兩個引數:移動地點的x座標,y座標。
import pyautogui as gui gui.moveTo(1919,1079)
這個程式可以讓滑鼠瞬移到右下角,是不是很nb?
還可以填第三個引數,是移動所需要的時間,預設0秒。
注意:在滑鼠移動的過程中,要是移動滑鼠他會給你拉回原位置,相當於固定住了,所以把時間調長容易直接動不了,非常的難受。
這裡,教給大家一個東西。pyautogui模組裡面自帶了神奇的變數:FAILSAFE,預設為True。當這個變數為True時,如果滑鼠控制不了了,你就使勁往左上角拉,程式就會報錯。
import pyautogui as gui gui.FAILSAFE =True gui.moveTo(1919,1079,5)
這段程式碼滑鼠會移動到右下角,如果在這個過程中使勁往左上角拉就會報錯。
接下來,我們就可以做一個簡單的小程式——滑鼠操控術。
import pyautogui as gui import random as r gui.FAILSAFE =True a=0 print("嘎嘎嘎你的滑鼠被我 操控了") while a<=100: gui.moveTo(r.randint(1,1919),r.randint(1,1079)) a+=1
這個程式執行後,會把你的滑鼠隨機移動到任意地方100次。
你可以自己調整迴圈次數來整你的好友,前提是他的電腦要有python。
我們把FAILSAFE設定為了True,控制不住的時候就使勁往左上移動就行,要是想整蠱好友就設定成False。好玩不?
另外,如果想在原有基礎上移動,就用move。
import pyautogui pyautogui.move(100,100,2)
例如這個程式,會花2秒將滑鼠往右移動100格,往下移動100格。
之後是position()函數,可以獲取當前滑鼠的位置。
import pyautogui as gui import time while True: print(gui.position()) time.sleep(1)
這個程式可以隔1秒輸出一次你的滑鼠的位置。
如果要讓滑鼠點選,就要用click函數。
pyautogui.click(0,0,button='left') pyautogui.click(0,0,button='right') pyautogui.click(0,0,button='middle')
前兩個值還是點選的xy座標,第三個值是點選的鍵,記住要用關鍵字引數的形式,left是左鍵,right是右鍵,middle是中鍵。這個程式是分別用左鍵右鍵中鍵點選左上角。
如果要雙擊左鍵,用doubleClick,雙擊右鍵用rightClick,雙擊中鍵用middleClick。他們三個用法相近,還是要填xy座標。
pyautogui.doubleClick(10,10) pyautogui.rightClick(10,10) pyautogui.middleClick(10,10)
執行之後會在10,10的位置雙擊左鍵,雙擊右鍵,雙擊中鍵。
如果我們要按鬆滑鼠就要用mouseDown和mouseUp,mouseDown是按下,mouseUp是鬆開。
import pyautogui as gui from time import sleep print("落下") gui.mouseDown() sleep(1) gui.mouseUp() print("鬆開")
這個程式會先按下滑鼠,等一秒鬆開。
要拖動一個視窗,如果想移動到一個位置用dragTo,還是兩個引數為xy座標,第三個引數為時間,預設為0。
import pyautogui as gui gui.dragTo(0,0,3)
這個程式會把按住的視窗用3秒拖動到左上角。
如果想在原位置的基礎上移動用dragRel,前兩個引數為要往右移動多少和往下移動多少,第三個引數為時間。
import pyautogui as gui gui.dragRel(200,0,3)
這個程式會把按住的視窗用三秒時間往右移動200畫素。
同樣,還有一個drag,因為網上我也沒查到相關資料,自己試驗出來的效果···好像和dragRel一樣?我也不知道咋回事,如果有人知道請在評論區指出,謝謝配合。
如果想上下滑動(就是移動滾輪),就要用scroll,要填一個引數,為移動的格數,預設是往上滑,加上-負號是往下滑。注意,滑動的時候滑鼠必須停留在那個視窗上否則沒用。
import pyautogui as gui gui.scroll(-200)
這個程式會在滑鼠停留頁面往下滑動200格。
滑鼠的用法就是這麼多了。他可以做很多的自動化程式。
現在,讓我們把剛才操控滑鼠的程式完善一下。
import pyautogui as gui import random as r gui.FAILSAFE =True a=0 print("嘎嘎嘎你的滑鼠被我 操控了") while a<=100: b=r.randint(1,3) if b==1: gui.moveTo(r.randint(1,1919),r.randint(1,1079)) if b==2: gui.click(r.randint(1,1919),r.randint(1,1079),button='left') if b==3: gui.dragTo(r.randint(1,1919),r.randint(1,1079)) a+=1
這個程式還會在原有的基礎上亂點,滑動,整蠱好友的時候別忘了改成False哦~
接下來,讓我們嘗試做一個連點器。
import pyautogui as gui#匯入pyautogui模組 from time import sleep#匯入time中的sleep函數 gui.SAILSAFE=True#開啟安全功能 a=int(input("要點選幾次?"))#獲取點選次數 print("5秒後程式將執行,請將遊標懸浮於連點介面上,如果控制不住滑鼠請把滑鼠往左上角滑動")#提示 sleep(5)#預留時間 x,y=gui.position()#獲取滑鼠座標 for i in range(a):#重複執行 gui.click(x,y)#點選 print("連點結束")#提示
效果:
加上我的手速也才點了這麼多,python還是太慢了,但也滿足需求了。
接下來是鍵盤的相關操作。
按鍵按下,用keyDown,按鍵起來用keyUp,這倆要配合起來用。
import pyautogui as gui gui.keyDown("shift") gui.keyUp("shift")
這個程式就是按下鬆開一次shift。
要是不想多打字就用press,它就相當於同時呼叫keyDown和keyUp。
import pyautogui as gui gui.press("shift")
他與上一個程式效果一樣。
如果想按多個鍵就用列表給他包起來就行了。
import pyautogui as gui gui.press(['a','left','b'])
這個程式會按a,再按左鍵,再按b,之後就相當於按了ba。
最好用的是typewrite,就是輸入一個字串。注意:一定要確保遊標位置,不然沒有用。
import pyautogui as gui gui.typewrite('666')
這個程式會在指定位置輸入666。注意:typewrite只能輸入英文,中文不起作用。
typewrite如果後面再放一個引數,就代表輸入每一個字母的間隔時間。
import pyautogui as gui gui.typewrite('python',1)
這個程式執行之後,會隔1秒輸入1個字元,輸出完python一共要5秒。
是不是很厲害?
它還可以放在列表裡來輸出多個字串,例如這個程式:
import pyautogui as gui gui.typewrite(['a','left','b'])
注意:這裡的left可是左方向鍵的意思,程式會把他轉換,他會鍵入ba。
有人問了:typewrite和press有啥區別啊?
沒認真看吧?typewrite的意思是輸入字串,press是敲擊鍵盤。left只是在typewrite裡面會發生跳脫,跳脫知不知道?
還有一個有用的函數,是hotkey,就是熱鍵,快捷鍵,放上按鍵就能完成一次快捷鍵。
import pyautogui as gui gui.hotkey('alt','tab')
這個程式執行之後會按下alt+tab,是不是很實用?
OK,鍵盤操作的學習就這麼多了。是不是很簡單?全是乾貨建議收藏。
接下來是一個小程式:轟炸器,幫你把網路噴子治得服服帖帖。
import pyautogui as gui#匯入PyAutoGUI模組 import time#匯入時間模組 print("三秒之後,程式將會進行轟炸,請複製自己的轟炸文字,做好心理準備")#提示 time.sleep(3)#預留時間切換介面 a=0#初始化變數 while a<100:#重複100次 a+=1#a自增 gui.hotkey('ctrl','v')#按下ctrl+v gui.hotkey('ctrl','enter')#按下ctrl+enter time.sleep(0.3)#等待0.3秒
這裡面,迴圈次數、等待時間是可以根據情況改變的。
當程式執行之後,複製轟炸內容,把遊標點到你要轟炸的那個介面做好等待就行。
執行效果:
再進行一下隨機話語的功能。
import pyautogui as gui#匯入PyAutoGUI模組並起名gui from time import sleep#匯入時間模組裡面的sleep from random import randint#匯入亂數模組裡面的randint print("三秒之後,程式將會進行轟炸,做好心理準備")#提示 sleep(3)#預留時間切換介面 a=0#初始化變數 while a<100:#重複100次 a+=1#a自增 c=randint(1,3)#設定亂數 if c==1:#如果c是1 gui.press(['s','h','a','b','i','1'])#就輸入《優美的中國話》 elif c==2:#如果c是2 gui.press(['c','a','o','n','i','m','a','1'])#就輸入《還是優美的中國話》 else:#如果c是3 gui.press(['g','u','n','n','i','m','a','1'])#就輸入《十分優美的中國話》 gui.hotkey('ctrl','enter')#按下ctrl+enter sleep(0.3)#等待0.3秒
這些話語可以調整,拿c=1的情況舉例,這時候就會敲擊鍵盤上的shabi,之後按1就完成了。要不是typewrite不能整中文還能更簡便。注意執行的時候把輸入法改回中文。
執行效果:
(希望圖片能顯示)在使用之前最好訓練一下自己的輸入法,不然輸出可能不對,但大部分輸入法都是可以固定首位的:
這樣就不會出現輸入錯誤的情況了,就算不能固定首位意思也大抵不會差。
以後遇到網路噴子,就用程式碼回擊他好吧。
我們還可以完成現在很火的傳送520個我愛你。
import pyautogui as gui#匯入PyAutoGUI模組並起名gui from time import sleep#匯入時間模組裡面的sleep sleep(3)#預留時間切換介面 a=0#初始化變數 while a<=520:#重複520次 a+=1#a自增 gui.press(['w','o','a','i','n','i','1'])#敲擊woaini,選擇第一項來輸入「我愛你「 gui.typewrite(str(a))#鍵入字串a gui.press('enter')#敲擊enter gui.hotkey('ctrl','enter')#打字完畢ctrl+enter傳送 python還是有點慢了,可以耐心等等。
效果:
PyAutoGUI模組是一個很好用也很好玩的自動化程式輔助,可以做出來許多自動化小程式,還是很好玩的。
學完基礎的知識,就要和模組打交道了。這就是你學習的第一個模組。
以上就是詳解Python中鍵盤滑鼠的相關操作的詳細內容,更多關於Python鍵盤滑鼠操作的資料請關注it145.com其它相關文章
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45