Уведомления

Группа в Telegram: @pythonsu

#1 Май 7, 2016 15:28:50

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Копировать текст без буфера обмена

Привет, подскажите, можно как-то поместить в переменную питона выделенный текст без буфера обмена?
Например, выделенный в браузере или в документе текст
С помощью буфера обмена и компинации Ctrl + C это работает, но выглядит, как костыль

win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0) # ctrl нажать
win32api.keybd_event(0x43, 0, 0, 0) # C нажать
win32api.keybd_event(0x43, 0, win32con.KEYEVENTF_KEYUP, 0) # C отпустить
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)  # ctrl отпустить
time.sleep (0.2)
win32clipboard.OpenClipboard()
var = win32clipboard.GetClipboardData()    
win32clipboard.CloseClipboard()

Офлайн

#2 Май 7, 2016 18:23:37

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Копировать текст без буфера обмена

napuznik
выделенный текст без буфера обмена?
Совершенно непонятно что вы имеете ввиду. Опишите последовательность действий пользователя для получения нужного эффекта. Укажите какая она сейчас и чем это вас не устраивает.



Отредактировано doza_and (Май 7, 2016 18:24:35)

Офлайн

#3 Май 7, 2016 18:38:36

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Копировать текст без буфера обмена

doza_and
Совершенно непонятно что вы имеете ввиду. Опишите последовательность действий пользователя для получения нужного эффекта. Укажите какая она сейчас и чем это вас не устраивает.
Doza_and, спасибо
В в браузере выделяю любой текст, например, “привет”. Выполняю скрипт, который эмулирует Ctrl + C, затем открывает буфер обмена и копирует в переменную var то, что там находит
У меня сейчас это работает со скриптом, который приведен в первом посте. Но это стремная реализация. Ищу способ это сделать минуя эмуляцию клавиш и, по возможности, виндовского буфера обмена

Офлайн

#4 Май 7, 2016 20:36:50

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Копировать текст без буфера обмена

napuznik
и, по возможности, виндовского буфера обмена
Боюсь не смогу вас обнадежить. Единого интерфейса для получения выделенного фрагмента я не знаю. И этот подход точно не будет работать под UNIX системы.

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

Управление приложениями в винде при помощи питона обычно осуществляют при помощи pywinauto.
Это тоже костыль.

Конкретно для броузера есть проект http://chrome-automation.com/
Можно посмотреть Tampermonkey.

Более естественно в вашем приложении зарегистрировать hot-key который вывалит куда надо выделенный фрагмент и вызовет внешний обработчик, например питоновский.

А приложение надо выбирать чтобы оно обеспечивало такую возможность.



Офлайн

#5 Май 7, 2016 21:37:14

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Копировать текст без буфера обмена

doza_and, спасибо за ответ и за направления

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version