在使用Sikuli或Jython时清空Windows剪贴板

3
我正在尝试使用Sikuli或Jython清除Windows剪贴板。
我目前使用剪贴板从文本框中获取用户输入的文本。我使用剪贴板来检查在点击按钮之前用户是否输入了文本。我想要检查在点击按钮之前文本框是否为空。
我遇到的问题是,一旦使用了剪贴板,我就无法清除它。因此,每次单击按钮时,剪贴板中的值都会返回到我的脚本中。
我需要能够在从剪贴板中获取用户输入文本后清除剪贴板,或找到一种不使用剪贴板读取文本框的方法。
求助。
提前致谢,
Marwan
1个回答

8
使用Jython,您可以按照以下方式将剪贴板的内容设置为一个空字符串,这样就可以清空它。
from java.awt.datatransfer import StringSelection
from java.awt.datatransfer import Clipboard
from java.awt import Toolkit

toolkit = Toolkit.getDefaultToolkit()
clipboard = toolkit.getSystemClipboard()
clipboard.setContents(StringSelection(""), None)

以下是将剪贴板内容以字符串形式读取的代码示例:

from java.awt.datatransfer import DataFlavor
contents = clipboard.getContents(None)
print contents.getTransferData(DataFlavor.stringFlavor)

2
这个方法很好用!谢谢!我最终使用以下代码从文本框中检索文本并将其复制到剪贴板,然后存入变量中。type(image_1,"a", KeyModifier.CTRL) # 选择所有文本 type("c", KeyModifier.CTRL) # 复制到剪贴板 message_text = Env.getClipboard() - Marwan مروان
我忘记在上面的评论中注明,所使用的代码是Sikuli的。 - Marwan مروان

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接