文章目录
- 键盘
- 键盘——记忆宫殿
- 入门——通过键盘发送一个字符串——typewrite()
- 常规——键名——typewrite()
- 常规——按下键盘——keyDown()
- 常规——释放键盘——keyUp()
- 升级——热键组合——hotkey()
键盘
pyautogui
也有一些函数向计算机发送虚拟按键,让你能够填充表格,或在应用中输入文本。
键盘——记忆宫殿
typewrite(message)
键入给定消息字符串中的字符。——type+write:字符+输入
typewrite([key1,key2,key3])
键入给定键字符串。
press(key)
按下并释放给定键。——press:释放
keyDown(key)
模拟按下给定键。——key+down:按键+下
keyUp(key)
模拟释放给定键。——key+up:按键+上
hotkey([key1,key2,key3])
模拟按顺序按下给定键字符串,然后以相反的顺序释放。——hot+key:热+按键
入门——通过键盘发送一个字符串——typewrite()
pyautogui.typewrite()
函数向计算机发送虚拟按键。
pyautogui.click(100,100); pyautogui.typewrite('Hello world!')
命令说明:
;
:在同一行中放两条命令,用分号隔开,这让交互式环境不会在两个指令之间提示输入。这防止了你在 click()
和 typewrite()
调用之间,不小心让新的窗口获得焦点,从而让这个例子失败。
命令含义:
Python 首先在坐标(100,100)处发出虚拟鼠标点击,这将点击文件编辑窗口,让它获得焦点。typewrite()
函数调用将向窗口发送文本 Hello world!。
常规——键名——typewrite()
可以查看 pyautogui.KEYBOARD_KEYS
列表,看看 pyautogui
接受的所有可能的键字符串。‘shift’ 字符串指的是左边的 Shift 键,它等价于’shiftleft’。‘ctrl’、‘alt’ 和 ‘win’ 字符串也一样,它们都是指左边的键。
键盘键字符串 | 含义 |
---|---|
'a','b','c','A','B','C','1','2','3','!','@','#' | 单个字符的键 |
'enter'(or 'return' or '\n') | 回车键 |
'esc' | Esc键 |
'shiftleft','shiftright' | 左右Shift键 |
'altleft','altright' | 左右Alt键 |
'ctrlleft','ctrlright' | 左右Ctrl键 |
'tab'(or '\t') | 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','volumedown','volumeup' | 静音、减小音量、放大音量键(有些键盘没有这些键,但你的操作系统仍能理解这些模拟的按键) |
‘pause’ | Pause键 |
'capslock','numlock','scrollock' | Caps Lock,Num Lock和Scroll Lock键 |
'insert' | Ins或Insert键 |
'printscreen' | Prtsc或Print Screen键 |
'winleft','winright' | 左右Win键(在Windows上) |
'command' | Command键(在OS X上) |
'option' | Option键(在OS X上) |
常规——按下键盘——keyDown()
命令说明:
pyautogui.keyDown()
将向计算机发送虚拟的按键。
pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift')
命令含义:
这行代码按下 Shift,按下(并释放)4,然后再释放 Shift。如果你需要在文本输入框内打一个字符串,typewrite()
函数就更适合。但对于接受单个按键命令的应用,press()
函数是更简单的方式。
cmd执行时注意事项:
cmd效果如下:
效果说明:
执行第二条命令,出现效果:$,即实现“按下 Shift,按下(并释放)4,然后再释放 Shift”的效果。
常规——释放键盘——keyUp()
pyautogui.keyUp()
将向计算机发送虚拟的释放。
pyautogui.keyUp('shift')
命令含义:释放Shift键。
升级——热键组合——hotkey()
“热键”或“快捷键”是一种按键组合,它调用某种应用功能。拷贝选择内容的常用热键是Ctrl-C
(在 Windows 和 Linux 上)。用户按住Ctrl键,然后按C键,然后释放C和Ctrl键。要用pyautogui
的keyDown()
和keyUp()
函数来做到这一点,必须输入以下代码:
pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')
这相当复杂。作为替代,可以使用 pyautogui.hotkey()
函数,它接受多个键字符串参数,按顺序按下,再按相反的顺序释放。例如对于 Ctrl-C,代码就像下面这样简单:
pyautogui.hotkey('ctrl','c')
报错
对于更大的热键组合,这个函数特别有用。在 Word 中,Ctrl-Alt-Shift-S 热键组合显示 Style(样式)窗口。不必使用 8 次不同的函数调用(4 次 keyDown()
调用和4 次 keyUp() 调用),你只要调用 hotkey('ctrl', 'alt', 'shift', 's')
。
在屏幕的左上角打开一个新的 IDLE 文件编辑窗口,在交互式环境中输入以下内容(在 OS X 中,用 ‘ctrl’ 代替 ‘alt’):
>>> import pyautogui, time
>>> def commentAfterDelay():pyautogui.click(100, 100)pyautogui.typewrite('In IDLE, Alt-3 comments out a line.')time.sleep(2) pyautogui.hotkey('alt', '3')
>>> commentAfterDelay()
命令含义:这定义了一个函数commentAfterDelay()
,在被调用时,将点击文件编辑窗口,让它获得焦点①,输出“In IDLE,Alt-3 comments out a line”②,暂停2秒钟,然后模拟按下 Alt-3 热键(或 OS X 上的 ctrl-3)③。这个快捷键在当前行加上两个#字符,将它注释掉(在 IDLE 中编写你自己的代码时,这是一个有用的技巧,应该知道)。