C #: как мне постоянно проверять буфер обмена на наличие скопированного текста - PullRequest
3 голосов
/ 09 сентября 2011

Мне нужна помощь, чтобы постоянно проверять буфер обмена или что-то для скопированного текста.По сути, у меня есть кнопка вставки, но я хочу, чтобы она была включена только тогда, когда у меня есть текст, скопированный в буфер обмена, и отключена, когда у меня нет текста, скопированного.Я знаю, что должен использовать:

Clipboard.ContainsText

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

Спасибо.

Ответы [ 2 ]

8 голосов
/ 09 сентября 2011

Посмотрите на этот ответ,

В нем приведены примеры и использование объекта Win32 API, называемого монитором буфера обмена.

Событие буфера обмена C #

Это решение было бы намного чище и эффективнее для достижения этого результата.

1 голос
/ 11 сентября 2011

Наряду с использованием API мониторинга буфера обмена обязательно избегайте распространенных ошибок, таких как невозможность передачи сообщений и невозможность удалить себя из уведомления буфера обмена (даже если вы потерпели крах и загорелись, вы должны удалить себя из цепочка уведомлений буфера обмена!)

У меня есть ресурсы, которые объясняют, как избежать распространенных проблем: http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows

...