Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 16, 2009 19:44:12

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с буфером обмена

Инструменты: Есть функция win32clipboard.GetClipboardData(), которая берет данные с буфера обмена.
Есть функция pythoncom.PumpMessages(), которая создает бесконечный цикл.
Цель: создать программу, которая будет сидет и ждать, пока в буфере не появится, скажем строка “stop”.
Проблема: Как организовать то самое ожидание и проверку. Бесконечный цикл будет просто много памяти хавать.

Ссылки для помощи: Перехват события - нажатия клавиш

Если у кого-то есть какие-то идеи, подскажите плз. Спасибо.



Офлайн

#2 Июнь 16, 2009 20:45:15

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Работа с буфером обмена

Под винду писал? На С Windows API безо всяких фреймворков? Ну хотя бы одну лабу?

Вот так и делается.

while GetMessage(...):
TranslateMessage(...)
ProcessMessage(...)
К сожалению WM_CLIPBOARDUPDATE появился только в Vindows Vista.
Поэтому прийдется прикинуться спрятанным ClipboardViewer. Начинать смотреть с SetClipboardViewer.

В принципе ничего военного нет, но никто не обещал что будет совсем легко.



Офлайн

#3 Июнь 16, 2009 21:12:16

vaxXxa
От: Kyiv, Ukraine
Зарегистрирован: 2009-06-16
Сообщения: 278
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с буфером обмена

Тут вопрос глобального плана.. Как заставить программу “ждать”?
Пожалуйста, приведите маленький пример. (пусть с SetClipboardViewer или еще с чем-то)
Просто что-то не пойму, как это должно выглядеть.
Спасибо.

P.S. Сорри за возможно тупые вопросы. Просто хочу разобраться.



Офлайн

#4 Июнь 17, 2009 15:16:11

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Работа с буфером обмена

GetMessage ждет сообщения из очереди потока того окна, в котором оно было создано.
Маленькая деталь: окно может быть и спрятанным.
На пример у меня сегодня нет времени.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version