Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 16, 2013 21:34:19

s0000p
Зарегистрирован: 2013-12-07
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

Здравствуйте.
Знающие люди подскажите каким образом можно реализовать механизм автоматической(постоянной, то есть пока работает сам скрипт) проверки буфера обмена (ОS: WinNT+) на предмет наличия в нем строки подпадающей под определенное регулярное выражение. Как я понимаю это будет что-то вроде обработчика события при котором добавляются данные в буфер обмена.

Само чтение из буфера обмена выглядит как-то так.

import tkinter
tk = tkinter.Tk()
print(tk.selection_get(selection = "CLIPBOARD"))

Прошу строго не судить, если вопрос поставлен не корректно. Совсем юный в программировании вообще и в частности на python.


Офлайн

#2 Дек. 16, 2013 22:00:45

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

Там есть два варианта (еще pywin32). Какая задача конкретно решается?
Что будет после того, как вы отследите нужную строчку?
Более подробно опишите…

Отредактировано 4kpt_II (Дек. 16, 2013 22:01:56)

Офлайн

#3 Дек. 16, 2013 22:23:01

s0000p
Зарегистрирован: 2013-12-07
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

4kpt_II
Там есть два варианта (еще pywin32). Какая задача конкретно решается?Что будет после того, как вы отследите нужную строчку?Более подробно опишите…

Задача: положить строчку с данными о некой аварии из системы мониторинга в буфер обмена, произвести ее парсинг, завести трабл тикет в информационной системе(делается по средствам библиотекеи requests, тут у меня проблем нет). От пользователя требуется только копирование строчки в буфер обмена. Как-то так.

Офлайн

#4 Дек. 16, 2013 22:30:25

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

А из системы мониторинга так вытянуть не получится. А то как-то костыльно получается…
Насколько часто пользователь будет делать такие операции?
Если данные в буфере обнаружены нужные, можно их из буфера удалить?

Офлайн

#5 Дек. 16, 2013 22:36:13

s0000p
Зарегистрирован: 2013-12-07
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

4kpt_II
А из системы мониторинга так вытянуть не получится. А то как-то костыльно получается…Насколько часто пользователь будет делать такие операции?Если данные в буфере обнаружены нужные, можно их из буфера удалить?

Костыльно)) но лучше чем копипаст) А из системы мониторинга просто копирование выделенной строки производится. На счет частоты операций тут даже не знаю, допустим раза 2-3 в течении 5 минут. обработанные данные в буфере не представляют ценности.

Офлайн

#6 Дек. 16, 2013 22:44:28

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

Т.е. дальше эти данные использоваться не будут? Никуда вставлятся тоже не будут?
Тогда можно просто:
1. Поставить прирывание в несколько секунд.
2. Скрипт опрашивает буфер обмена.
3. Если находит там нужные данные, то очищает буфер и ждет дальше. Полученные данные отдает на обработку в другой модуль. А там они уже парсятся и сохраняются как Вы хотите…

Офлайн

#7 Дек. 16, 2013 22:47:04

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

Кстати. Откуда данные копируются? Не из текстового ли файла?

Офлайн

#8 Дек. 16, 2013 22:53:41

s0000p
Зарегистрирован: 2013-12-07
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

4kpt_II
Кстати. Откуда данные копируются? Не из текстового ли файла?

Нет не из текстового,из окна программы.
1. Поставить прирывание в несколько секунд.
2. Скрипт опрашивает буфер обмена.

Можно ввиде кода примерчик я просто не знаю как это реализовать на питоне)) Заранее спасибо за помощь

Офлайн

#9 Дек. 16, 2013 23:55:12

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

Решил. Специфически, конечно, зато универсально для любой системы
Какая версия питона?

Офлайн

#10 Дек. 16, 2013 23:58:58

bu_
От:
Зарегистрирован: 2010-11-03
Сообщения: 14
Репутация: +  4  -
Профиль   Отправить e-mail  

Автоматическое чтение буфера обмена при добавлении в него нового строкового значения.

import time
import win32clipboard
while True:
	win32clipboard.OpenClipboard()
	print win32clipboard.GetClipboardData()
	win32clipboard.CloseClipboard()
	time.sleep(2)

Оно?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version