python自動化之鼠標移動

################################用GUI自動化控制鍵盤和鼠標###############################函數

'''ui

http://pyautogui.readthedocs.org/介紹pyautogui功能對象

有好幾種方法防止或恢復GUI自動化問題:ip

一、經過註銷關閉程序:Ctrl-Alt-Del字符串

二、暫停和自動防故障裝置:get

         (1)、pyautogui.PAUSE=1.5 每一個PyAutoGUI函數調用在執行動做以後,都會等待一秒半it

                    非PyAutoGUI指令不會停頓自動化

         (2)、pyautogui有自動防故障功能,將鼠標移到屏幕的左上角,自動防故障功能都將中止程序.io

                    能夠設置pyautogui.FAILSAFE=False,禁止這項功能           import

'''

################################移動鼠標##############################################

####pyautogui.moveTo()函數將鼠標當即移動到屏幕的指定位置:x,y爲座標,duration指定所需秒數

import pyautogui

for i in range(10):

         pyautogui.moveTo(100,100,duration=0.25)

         pyautogui.moveTo(200,100,duration=0.25)

         pyautogui.moveTo(200,200,duration=0.25)

         pyautogui.moveTo(100,200,duration=0.25)

####pyautogui.moveRel()函數相對於當前的位置移動鼠標

import pyautogui

for i in range(10):

         pyautogui.moveRel(100,0,duration=0.25)

         pyautogui.moveRel(0,100,duration=0.25)

         pyautogui.moveRel(-100,0,duration=0.25)

         pyautogui.moveRel(0,-100,duration=0.25)

####pyautogui.position()函數肯定鼠標當前的位置

pyautogui.position()

 

################################控制鼠標交互##############################################

###################################點擊鼠標###############################################

import pyautogui

pyautogui.click(100,150,button='left')  ####在相應位置點擊鼠標左鍵

'''

pyautogui.click(100,150,button='right') ####將在相應位置點擊鼠標右鍵

pyautogui.mouseDown() ####按下鼠標按鍵

pyautogui.mouseDown() ####釋放鼠標按鍵

pyautogui.doubleClick()  ####執行雙擊鼠標左鍵

pyautogui.rightClick()   ####執行雙擊右鍵

pyautogui.middleClick()  ####執行雙擊中鍵

'''

###################################拖放鼠標######################################################

'''

pyautogui.dragTo()和pyautogui.dragRel()函數:將鼠標拖動到一個新的位置,或相對當前位置的位置

dragTo()和dragRel()的參數與moveTo()和moveRel相同:x座標/水平移動,y座標/垂直移動,以及可選的時間間隔

'''

import pyautogui,time

time.sleep(5)

pyautogui.click()

distance=200

while  distance>0:

         pyautogui.dragRel(distance,0,duration=0.2)

         distance=distance-5

         pyautogui.dragRel(0,distance,duration=0.2)

         pyautogui.dragRel(-distance,0,duration=0.2)

         distance=distance-5

         pyautogui.dragRel(0,distance,duration=0.2)

###################################滾動鼠標######################################################

import pyperclip

numbers=''

for i in range(200):

         numbers=numbers+str(i)+'\n'

pyperclip.copy(numbers)

 

###獲得文本

import time,pyautogui

time.sleep(5);pyautogui.scroll(100)

################################獲取屏幕快照#####################################################

import pyautogui

>>> im=pyautogui.screenshot()

>>> im.save(r'C:\Users\shenlu\Desktop\one.jpg')

####im中包含一個屏幕快照的Image對象

################################分析屏幕快照##############################################

>>> import pyautogui

>>> im=pyautogui.screenshot()

>>> im.getpixel((50,200))

(255, 255, 255)

>>> pyautogui.pixelMatchesColor(50,200,(255,255,254))

False

>>> pyautogui.pixelMatchesColor(50,200,(255,255,255))

True

################################圖像識別##############################################

>>> pyautogui.locateOnScreen(r'C:\Users\shenlu\Desktop\one.jpg')

>>> a=pyautogui.locateOnScreen(r'C:\Users\shenlu\Desktop\one.jpg')

>>> print a

None

'''

一、pyautogui.locateOnScreen()未成功識別,返回None;

成功識別,返回首次發現該圖像時左邊的x,y座標,寬度和高度

二、若是該圖像在屏幕上可以找到多處,locateAllOnScreen()函數返回一個list

三、pyautogui.center()返回該區域中心的x,y座標

'''

>>>pyautogui.locateOnScreen('submit.png')

(643,745,70,29)

>>>pyautogui.center((643,745,70,29))

(678,759)

>>>pyautogui.click((678,759))

################################控制鍵盤##############################################

##############################經過鍵盤發送一個字符串##################################

'''

pyautogui.typewrite()函數向計算機發送虛擬按鍵

'''

>>> import pyautogui

>>> pyautogui.click(500,500);pyautogui.typewrite('Hello world!')

###################################鍵名###############################################

import pyautogui

pyautogui.typewrite(['a','b','left','left','X','Y'])  ####如下的調用表示按a鍵,b鍵,左箭頭兩次,X和Y鍵

>>> pyautogui.typewrite(['a','b','left','left','X','Y'])

XYab>>>

>>> pyautogui.typewrite(['a','b','left','X','Y'])

aXYb>>>

'''

鍵盤鍵字符串                                                                           含義

'a','b','A','B','C','1','2','3'                              單個字符的鍵

'!','@','#',等等

'enter'(or 'return' or '\n')                             回車鍵

'esc'                                                                                     Esc鍵

......

'''

###################################按下和釋放鍵盤####################################

#'''

#pyautogui.keyDown()和pyautogui,keyUp()將向計算機發送虛擬的按鍵和釋放

#'''

import pyautogui

pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift')

######################################熱鍵組合#######################################

import pyautogui

pyautogui.hotkey('ctrl','c')      ##即Ctrl-C鍵

'''

等同於

pyautogui.keyDown('ctrl')

pyautogui.keyDown('c')

pyautogui.keyUp('c')

pyautogui.keyUp('ctrl')

'''

import pyautogui,time

def commentAfterDelay():

         pyautogui.click(500,500)

         time.sleep(2)

         pyautogui.hotkey('shift','3')

         pyautogui.typewrite('In IDLE,Alt-3 comments out a line.')

 

        

commentAfterDelay()

######################################如今鼠標在哪裏#######################################

####顯示鼠標座標位置,給出這個像素的RGB顏色

import pyautogui

print 'Press Ctrl-C to quit'

try:

         while  True:

                   x,y=pyautogui.position()

                   positionStr='X: '+str(x).rjust(4)+' Y: '+str(y).rjust(4)

                   pixelColor=pyautogui.screenshot().getpixel((x,y))

                   positionStr +='RGB: ('+str(pixelColor[0]).rjust(3)

                   positionStr +=', '+str(pixelColor[1]).rjust(3)

                   positionStr +=', '+str(pixelColor[2]).rjust(3) +')'

                   print positionStr,

                   print '\b'*len(positionStr),

except KeyboardInterrupt:

         print '\nDone.'

 

###########################每隔10秒移動下鼠標###########################

import pyautogui,time

try:

         while True:

                   time.sleep(10)

                   pyautogui.moveRel(-100,100,duration=0.25)

except KeyboardInterrupt:

         print '\nDone.'

相關文章
相關標籤/搜索