Форум сайта python.su
0
Здравствуйте.
Знающие люди подскажите каким образом можно реализовать механизм автоматической(постоянной, то есть пока работает сам скрипт) проверки буфера обмена (ОS: WinNT+) на предмет наличия в нем строки подпадающей под определенное регулярное выражение. Как я понимаю это будет что-то вроде обработчика события при котором добавляются данные в буфер обмена.
Само чтение из буфера обмена выглядит как-то так.
import tkinter tk = tkinter.Tk() print(tk.selection_get(selection = "CLIPBOARD"))
Офлайн
58
Там есть два варианта (еще pywin32). Какая задача конкретно решается?
Что будет после того, как вы отследите нужную строчку?
Более подробно опишите…
Отредактировано 4kpt_II (Дек. 16, 2013 22:01:56)
Офлайн
0
4kpt_II
Там есть два варианта (еще pywin32). Какая задача конкретно решается?Что будет после того, как вы отследите нужную строчку?Более подробно опишите…
Офлайн
58
А из системы мониторинга так вытянуть не получится. А то как-то костыльно получается…
Насколько часто пользователь будет делать такие операции?
Если данные в буфере обнаружены нужные, можно их из буфера удалить?
Офлайн
0
4kpt_II
А из системы мониторинга так вытянуть не получится. А то как-то костыльно получается…Насколько часто пользователь будет делать такие операции?Если данные в буфере обнаружены нужные, можно их из буфера удалить?
Офлайн
58
Т.е. дальше эти данные использоваться не будут? Никуда вставлятся тоже не будут?
Тогда можно просто:
1. Поставить прирывание в несколько секунд.
2. Скрипт опрашивает буфер обмена.
3. Если находит там нужные данные, то очищает буфер и ждет дальше. Полученные данные отдает на обработку в другой модуль. А там они уже парсятся и сохраняются как Вы хотите…
Офлайн
58
Кстати. Откуда данные копируются? Не из текстового ли файла?
Офлайн
0
4kpt_II
Кстати. Откуда данные копируются? Не из текстового ли файла?
Офлайн
58
Решил. Специфически, конечно, зато универсально для любой системы 
Какая версия питона?
Офлайн
4
import time import win32clipboard while True: win32clipboard.OpenClipboard() print win32clipboard.GetClipboardData() win32clipboard.CloseClipboard() time.sleep(2)
Офлайн