Мы внедряем некоторые виртуальные машины с программным обеспечением роботов, которое выполняет действия в браузере, и у нас возникают проблемы с некоторыми из них при доступе к буферу обмена для чтения или записи. Они показывают «Не удается открыть буфер обмена».
Таким образом, есть любое другое приложение, удерживающее буфер обмена.
Как мы можем отладить это? Есть ли инструмент, который может контролировать это? AFAIK ProcMon не делает работу.
Машины Windows XP.
windows
monitoring
clipboard
Аксель Костас Пена
источник
источник
Ответы:
API буфера обмена появился в Windows 3.0 (или раньше?) И плохо спроектирован. К сожалению, вместо получения / установки примитивов он использует open / close, что позволяет приложениям слишком долго удерживать свой доступ. Vista внесла некоторые улучшения в обработку цепочки зрителей, но не добавила новый API.
С помощью существующего API можно определить владельца буфера обмена, только если у этого владельца есть хотя бы одно открытое окно. Если у владельца нет окон, то ему не повезло.
В теме Почему мой буфер обмена перестал работать? Jay Parzych предоставил следующий vbs-код, где функция GetClipboardLocker возвращает имя файла процесса, содержащего буфер обмена:
Сходная функция C # может быть найдена в посте Получить владельцы буфера обмена Title / Caption .
источник