41-使用剪贴板读取文本字段
20.17.2 使用剪贴板读取文本字段
虽然你可以用 pyautogui.write()
向应用程序的文本字段发送按键命令,但你不能单独使用PyAutoGUI来读取已经在文本字段内的文本。这时候 pyperclip
模块就可以提供帮助。你可以使用PyAutoGUI来获取一个文本编辑器(如Mu或记事本)的窗口,通过单击它,让它取得焦点,在文本字段内单击,然后按Ctrl-A或Command-A快捷键“选择全部内容”,按Ctrl-C或Command-C快捷键“复制到剪贴板”。然后你的Python脚本可以通过运行 import pyperclip
和 pyperclip.paste()
来读取剪贴板文本。
编写一个程序,按照这个过程从窗口的文本字段复制文本。使用 pyautogui. getWindowsWithTitle('Notepad')
(或你选择的任何一个文本编辑器)获得一个 Window
对象。这个 Window
对象的 top
和 left
属性可以告诉你这个窗口在哪里,而 activate()
方法将确保它在屏幕前面。然后,你可以用 pyautogui.click()
方法在文本编辑器的主文本输入框中单击,例如在顶部和左侧的属性值上加100像素或200像素处,将键盘的焦点放在那里。调用 pyautogui.hotkey('ctrl', 'a')
和 pyautogui. hotkey('ctrl', 'c')
来选择所有的文本并复制到剪贴板上。最后,调用 pyperclip.paste()
从剪贴板中获取文本,并将它粘贴到你的Python程序中。在那里,你可以随意使用这个字符串,但现在只需将它传递给 print()
。
请注意,PyAutoGUI的窗口函数只在PyAutoGUI 1.0.0.0版本的Windows操作系统上工作,在macOS或Linux操作系统上不能工作。