9

Мой буфер обмена автоматически стирается время от времени.

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

Это происходит нерегулярно, иногда я могу вставить текст много раз, иногда даже не один раз.

Я разработчик, поэтому я очень часто копирую и вставляю (...), но это действительно раздражает.

Как я могу узнать, какое программное обеспечение это делает? Есть ли какой-нибудь инструмент для мониторинга, КАКОЙ ПРОЦЕСС УДАЛЕН КЛИПАТОР? Или, если у вас возникла проблема с каким-либо программным обеспечением, которое вы использовали, какое это было?

Я использую Windows 7, и в моей системе запущено много приложений, поэтому трудно сказать, какое из них вызывает все проблемы.

Обновить

Сегодня я подтвердил, что неправильно работающее приложение - это Visual C# 2010 , и проблема появляется только внутри этого приложения. Я попытался использовать инструменты мониторинга буфера обмена, как предложил JRobert . Кажется, что текст правильно копируется в clipboard (так что clipboard history manager может записать его), а затем Visual C# 2010 по какой-то причине стирает содержимое буфера обмена, что приводит к "пустому буферу обмена".

Так что спасибо всем, теперь я уверен, какое приложение вызывает проблемы, и даже нашел трекер ошибок Microsoft Connect по этому поводу:
https://connect.microsoft.com/VisualStudio/feedback/details/554039/visual-studio-2010-clipboard-copy-and-cut-does-not-work?wa=wsignin1.0
И вот дополнительная информация:
http://alpascual.com/post/copy-and-paste-problems-in-visual-studio-2010.aspx

Теперь я могу просто подождать и помолиться за исправление ошибки Microsoft.

4 ответа4

3

Промежуточный шаг (между выборочным уничтожением процессов и перехватом API буфера обмена) может быть одним из этих средств просмотра буфера обмена. Возможно, вам придется обновлять его вручную, надеясь обнаружить, когда очистится буфер обмена, но, сузив его, вы можете обнаружить, что это происходит, например, сразу после какого-то другого явно безобидного действия, которое вы предприняли.

2

Буфер обмена в Windows никогда не работал очень хорошо. Давным-давно я отказался от этого и начал использовать бесплатные замены буфера обмена. Мой последний фаворит - ClipX (http://www.bluemars.org/clipx/). Я просто устал от удара головой о странности и ограничениях буфера обмена Windows (самое худшее, что вы можете хранить только один клип за раз).

Кроме того, вы должны знать, что Microsoft сделала некоторые очень странные вещи с буфером обмена Windows в некоторых версиях Microsoft Office. Я не могу вспомнить, какие версии Office были худшими нарушителями в этом отношении, но я знаю, что после установки одной из них операция с буфером обмена была серьезно испорчена, пока я не отключил соответствующие функции. Насколько я помню, эти проблемы возникали даже тогда, когда не было запущено ни одного приложения Office. В любом случае, если вы не установили Office на данный компьютер, очевидно, вы должны это игнорировать.

2

Проверьте https://stackoverflow.com/questions/621577/clipboard-event-c

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

2

Правильный способ сделать это, чтобы контролировать вызовы API, операции с буфером обмена являются функцией модуля user32.dll

некоторые из них :

user32.dll!CloseClipboard
user32.dll!SetClipboardData
user32.dll!EmptyClipboard
user32.dll!GetClipboardData
...

некоторые инструменты, такие как Spy Studio или API Monitor, позволяют отслеживать эти звонки и сообщать, кто их совершил.

удачи !

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .