2012-05-01 3 views
2

Я пытаюсь очистить буфер обмена Windows с помощью Sikuli или Jython.Очистка буфера обмена Windows при использовании Sikuli or Jython

В настоящее время я использую буфер обмена, чтобы захватить введенный пользователем текст из текстового поля. Я использую буфер обмена, чтобы проверить, не введен ли пользователь текст перед нажатием кнопки. Я хочу проверить, осталось ли текстовое поле пустым до нажатия кнопки.

Проблема, с которой я столкнулась, заключается в том, что после того, как используется буфер обмена, я не могу его очистить. Таким образом, значение в буфере обмена возвращается в мой скрипт каждый раз, когда нажимается кнопка.

Мне нужно очистить буфер обмена после захвата введенного пользователем текста или найти способ прочитать текстовое поле без использования буфера обмена.

Помощь.

Спасибо заранее,

Марван

ответ

6

Использование 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) 
+1

Это работало отлично! Благодаря! Я закончил использовать следующее, чтобы извлечь текст из текстового поля в буфер обмена, а затем в мою переменную. 'type (image_1," a ", KeyModifier.CTRL) # Выбрать весь текст' 'type (" c ", KeyModifier.CTRL) # Скопировать в буфер' 'message_text = Env.getClipboard()' –

+0

Я забыл отметить, что в мой комментарий выше, код используется для Сикули. –

Смежные вопросы