Вміст буфера обміну автоматично стирається


10

Мій буфер обміну час від часу автоматично стирається.

Наприклад:
я копіюю якийсь текст за допомогою 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 -копіювати-вирізати-не працює? wa = wsignin1.0
А ось додаткова інформація:
http://alpascual.com/post/copy-and-paste-problems-in-visual-studio-2010 .aspx

Тепер я можу просто чекати і молитися, щоб Microsoft виправила помилку.



Я прочитав статтю та всю дискусію під нею, але ніхто не відчував тієї самої проблеми, як я. :-(
Пайя

1
Ви не випадково використовуєте KeePass, чи не так?
Переповнення стека мертве

Ні, я ні, але я встановив її раніше, і видалив її ...
Paya

чому ти не робиш це простим способом? Почніть із закриття доданих вами настільних додатків до появи цих проблем, я запускатимуть програми flash / AIR та гаджети на робочому столі тощо ... "занадто багато ніколи не занадто"

Відповіді:


3

Перевірте /programming/621577/clipboard-event-c

Я не думаю, що ви можете зробити більше, ніж є в API, але це має бути досить корисним, щоб згорнути свій власний монітор буфера обміну або попросити когось із цього питання надати вам своє. Контроль та показ вмісту буфера обміну кожного разу може бути корисним, чи вирішити, чи щось стороннє возиться з вашим буфером, звідти вам доведеться визначити винувця, усунувши процеси чи щось подібне.


Так, я вже знаю, що можна відстежувати зміни буфера обміну, але мені потрібно відстежити це до програми, яка внесла зміни. І проблема не повторюється періодично, а випадково. Тож було б дуже важко відстежити додаток, усунувши процеси.
Пайя

О, я щойно отримав ідею, яка може допомогти вам у вирішенні. Ви можете спробувати підключити виклик API ( codeproject.com/kb/system/hooksys.aspx ) і виявити його таким чином ...
Тамара Війсман

Так, ця ідея теж перехрестилася мені, але створити таку програму трохи складніше. Я просто сподіваюся, що є ще якесь рішення.
Пайя

3

Проміжним кроком (між вибірково вбиваючими процесами та підключенням API буфера обміну) може бути один із цих переглядачів буфера обміну . Можливо, вам доведеться продовжувати оновлення вручну, сподіваючись виявити, коли буфер обміну очиститься, але, звузивши його, ви можете виявити, що це відбувається, f / ex, відразу після деяких інших, очевидно, нешкідливих дій, які ви вчинили.


Це трапляється, навіть якщо я не вчиняю жодних недоброзичливих дій ... Наприклад, я копіюю щось у буфер обміну, а потім п’ять разів натискаю Ctrl + V. Він вставляється 3 рази, а потім раптом стирає вміст буфера обміну, тому наступні 2 ctrl + v нічого не роблять. І я просто роблю ctrl + v, більше нічого. Тому я не знаю, як допомогти мені змінити буфер обміну.
Пайя

І нічого того, що стосується користувачів, не відбулося в цей момент? Це явище повинно бути пов'язане з деяким процесом, який працює або не працює в даний момент часу, якщо він не є надійно повторюваним. Моя єдина пропозиція - отримати знімок (f / ex, за допомогою Провідника процесів) поточних запущених процесів, зроблених у періоди, коли ви можете відтворити явище, і в періоди, коли ви не можете. Потім порівняйте два знімки для їх відмінностей.
JRobert

Ну, це буває абсолютно випадковим чином, нічого не стосується користувачів. Однак зараз я підозрюю, що Visual C # 2010 спричиняє проблеми, тому що я переглянув це, і, схоже, у інших виникають подібні (не ті самі) проблеми з буфером обміну. Буде досліджено далі.
Пайя

2

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

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


Я не встановив Office, так що не повинно бути так. До речі, ClipX - це менеджер історії буфера обміну, а не заміна буфера обміну. Але здається, що Visual C # 2010 викликає дивовижність буфера обміну, я намагаюся це підтвердити, але наразі не можу відтворити проблему. Буде намагатися.
Пайя

Ви розщеплюєте волоски. ClipX та (інші подібні інструменти) зачіпляються до буфера обміну Windows і ефективно знімають усі його обмеження, включаючи вид дивної поведінки, про яку ви спочатку публікували. Навіщо бити головою об дурний буфер обміну за замовчуванням, якщо ти можеш обійти його?
boot13

", поки я не відключив пов'язані функції" Які з них? Як ви їх відключили? @Paya
falsePockets

@falsePockets Можливо, вам слід запитати boot13? Він написав пост. У будь-якому разі я зараз використовую Visual Studio 2017, і ця проблема вже не має.
Пайя

@falsePockets: це точно працює в Word 2007, ймовірно, також і інші версії. Перейдіть на вкладку Домашня сторінка, клацніть стрілку праворуч від місця, де написано "Буфер обміну", трохи нижче "Вставити". Натисніть кнопку "Параметри" внизу зліва. Скасуйте вибір деяких або всіх цих параметрів.
boot13

2

Правильний спосіб зробити це - відстежувати виклики API, операції буфера обміну - функція модуля user32.dll

деякі з них:

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

деякі інструменти, такі як Spy Studio або API Monitor, дозволяють відстежувати ці дзвінки та повідомляти, хто їх здійснив.

Щасти !


Шпигунська студія не має 64-бітної підтримки, так ... Але, здається, API Monitor це зробить, перевіримо це пізніше ... +1 Виглядає приголомшливо! Вже працювали з XPerf, але це здається більш зручним, оскільки воно може показувати параметри та інші речі. :-)
Тамара Війсман

Нова версія монітора API приємна, єдиний мінус полягає в тому, що якась річ не дуже ефективна для користувачів, як, наприклад, вибір декількох процесів або фільтрів ... Я повідомляю про це днями. :-)
Тамара Війсман

так, вони щойно випустили V2 :) виглядає перспективно. скажіть, якщо це дасть якісь результати, і є багато інших, але більшість з них дозволяють підключити лише один процес (не дуже зручно для вашого випадку)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.