Tordex Community

Full Version: ClipBoard Manager
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Есть проблема с этим плагином. Он блокирует клипбоард.
железно воспроизводится на моей машине в двух операционных Win системах.
Время от времени плаг блокирует буфер обмена, и некоторые программы неадекватно реагируют на это. Хорошо, если программа предусматривает реакцию на ошибку, но большинство программ, написанных на Delphi выбрасывает стандартное исключение если не может открыть клипборд.

Если нужны тест-кейсы - могу привести. воспроизводимость 100%.
Я так полагаю, что неправильно обрабатывается цепочка вьюверов. Возможно конфликтует с панто свитчером.
Quote:Если нужны тест-кейсы - могу привести. воспроизводимость 100%.
Сейчас плотно занялся этим плугином. тест-кейсы могли бы помочь.
Скажите, как снять данные или какие-либо логи с программы. я нарисовал утилитку, копирующую в буфер обмена в цикле. процент ошибок открытия буфера варьируется от 60 до 80 %
Хмм... я кажется понял в чем проблема. По крайней мере с офисом оно начало нормально работать.

Только оно вот в чем дело-то. При копировании в цикле всегда будет часть ошибок открытия буфера, только из-за того, что нужно какое-то время чтобы выхватить данные из буфера.
поставил полусекундный WaitForSingleObject в цикле, процент ошибок несильно уменьшился. копирую небольшой фрагмент, так что захват должен успевать.
конфликт с панто свичером отсеял - ошибка возникает даже при выгруженном панто.
в любом случае, могу провести любые тест-кейсы, ибо есть стойкая воспроизводимость
Quote:поставил полусекундный WaitForSingleObject в цикле, процент ошибок несильно уменьшился.
да-да, нужна исправленная версия. Я приаттачил к этому посту (32-х битная dll-ка) попробуйте с ней. По крайней мере с задержкой она должна работать (я надеюсь).
с поправленной dll и задержкой в полсекунды работает замечательно.
ошибки начинаются при задержке в 100 миллисекунд (при отключенном плагине ошибок нет). На моем тесте это 9732 ошибки из 10000 итераций. Я полагаю ошибка возникает из за того, что не успевает сохраниться где то во внутреннем буфере плагина, либо задержка для отображения.
В принципе, проблема решена Smile при рядовых попытках копирования уже не сбоит. Гиковские тесты уже дают фейл. На моей памяти есть случаи, когда vb скрипт в экселе формировал сводные таблицы через копирование в буфер обмена, так что думаю проблему можно хотя бы посмотретьSmile К слову сказать, пантосвитчер с включенной функцией слежения за буфером обмена не сбоит при тесте.

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