在Python中读取对话框
我正在尝试用Python来自动化我每天的一个例行工作。我使用了win32gui这个库,已经能够把鼠标移动到指定位置,点击一下,然后发送键盘输入。在这个过程中,会弹出几个消息框,问我一些需要选择“是”还是“否”的问题。我想要能够读取这些消息框里的问题,但我不知道该怎么做。谢谢!
1 个回答
1
这里有一个可能的办法,你可以通过在对话框上按下 Ctrl-C
来把对话框里的全部内容复制到剪贴板。你需要使用 sendkeys 这个方法,并且确保对话框是当前选中的状态。复制到剪贴板的内容通常会像这样:
[Window Title]
Rename
[Content]
If you change a file name extension, the file might become unusable.
Are you sure you want to change it?
[Yes] [No]
在 pywin32
这个库里,有一个叫 win32clipboard
的功能,可以让你获取剪贴板里的内容,这样你就可以分析文本并作出反应,或者做其他你需要做的事情:
import win32con
import win32clipboard
try:
win32clipboard.OpenClipboard()
text = win32clipboard.GetClipboardData(win32con.CF_TEXT)
print(text)
except TypeError:
print('Error: No text on the clipboard!')
finally:
win32clipboard.CloseClipboard()
不过,不是所有的对话框都能这样复制。有些对话框是无法复制到剪贴板的,比如 Windows 7 的删除确认对话框就是其中之一,我也不知道具体原因。