python 编程控制键盘和鼠标

版权声明:© 本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_41204464/article/details/89258685

一、

首先我们安装一下包:pyautogui

在windown 环境下:

先来到 Anaconda Prompt 中(PyCharm 的开发环境)

执行 

pip install PyAutoGUI

在Linux 环境下:

sudo pip install PyAutoGUI

如果报错了,可以尝试指定版本:

pip install PyAutoGUI==0.9.38

如果安装失败,可以参考:https://www.cnblogs.com/SH170706/p/9809830.html 

二、具体例子

移动鼠标

1)pyautogui.moveTo()函数将鼠标立即移动到屏幕的指定位置:x,y为坐标, duration指定所需秒数

####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)

2)pyautogui.moveRel()函数相对于当前的位置移动鼠标

####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()

控制鼠标交互

1)点击鼠标

###################################点击鼠标###############################################
import pyautogui
pyautogui.click(100,150,button='left')  ####在相应位置点击鼠标左键
'''
pyautogui.click(100,150,button='right') ####将在相应位置点击鼠标右键
pyautogui.mouseDown() ####按下鼠标按键
pyautogui.mouseDown() ####释放鼠标按键
pyautogui.doubleClick()  ####执行双击鼠标左键
pyautogui.rightClick()   ####执行双击右键
pyautogui.middleClick()  ####执行双击中键
'''

2)拖放鼠标

###################################拖放鼠标######################################################
'''
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)

3)滚动鼠标

###################################滚动鼠标######################################################
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)

控制键盘 

##############################通过键盘发送一个字符串##################################
'''
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秒移动下鼠标 

###########################每隔10秒移动下鼠标###########################
import pyautogui,time
try:
    while True:		
        time.sleep(10)
        pyautogui.moveRel(-100,100,duration=0.25)
except KeyboardInterrupt:
         print ('\nDone.')

希望对你有帮助。 

猜你喜欢

转载自blog.csdn.net/qq_41204464/article/details/89258685