Найти - Пользователи
Полная версия: Копировать текст без буфера обмена
Начало » Python для экспертов » Копировать текст без буфера обмена
1
napuznik
Привет, подскажите, можно как-то поместить в переменную питона выделенный текст без буфера обмена?
Например, выделенный в браузере или в документе текст
С помощью буфера обмена и компинации 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()
doza_and
napuznik
выделенный текст без буфера обмена?
Совершенно непонятно что вы имеете ввиду. Опишите последовательность действий пользователя для получения нужного эффекта. Укажите какая она сейчас и чем это вас не устраивает.

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

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

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

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

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

А приложение надо выбирать чтобы оно обеспечивало такую возможность.
napuznik
doza_and, спасибо за ответ и за направления
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB