web-dev-qa-db-ja.com

クリップボードの内容は自動的に消去されます

クリップボードは時々自動的に消去されます。

例えば:
Ctrl + Cを使用してテキストをコピーし、どこかに貼り付けます。そして、もう一度貼り付けようとすると、何も起こりません。もう一度コピーする必要があります。

これは不規則に発生します。テキストを何度も貼り付けることができる場合もあれば、一度も貼り付けられない場合もあります。

私は開発者なので、コピー&ペーストを頻繁に行います(...)が、これは本当に面倒です。

どのソフトウェアがこれを行うのかをどのように見つけることができますか?どのプロセスがクリップボードを消去したかを監視するためのツールはありますか?または、使用したソフトウェアでこの問題が発生した場合、それはどれですか?

私はWindows7を使用していますが、多くのアプリケーションがシステムで実行されているため、どのアプリケーションがすべての問題を引き起こしているのかを判断するのは困難です。

更新

今日、不正なアプリケーションが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 .
そしてここにいくつかの追加情報があります:
http://alpascual.com/post/copy-and-paste-problems-in-visual-studio-2010.aspx

これで、Microsoftがバグを修正するのを待って祈ることができます。

10
Paya

チェックアウト https://stackoverflow.com/questions/621577/clipboard-event-c

APIで利用できる以上のことができるとは思いませんが、これは、独自のクリップボードモニターをロールアップしたり、その質問から誰かに提供を依頼したりするのに十分役立つはずです。クリップボードの内容を毎回監視して表示すると、サードパーティがクリップボードをいじっているかどうかを判断するのに役立ちます。そこから、プロセスなどを排除して原因を特定する必要があります。

3
Tamara Wijsman

中間ステップ(プロセスを選択的に強制終了することとクリップボードAPIをフックすることの間)は、これらのいずれかである可能性があります クリップボードビューアー 。クリップボードがいつクリアされたかを検出するために手動で更新し続ける必要があるかもしれませんが、それを絞り込むことで、他の明らかに無害なアクションを実行した直後に、f/exで発生することがわかります。

3
JRobert

Windowsのクリップボードはこれまでうまく機能していません。ずっと前に私はそれをあきらめて、フリーウェアのクリップボードの代替品を使い始めました。私の最近のお気に入りはClipX( http://www.bluemars.org/clipx/ )です。 Windowsクリップボードの奇妙さと制限に頭をぶつけるのにうんざりしました(最悪の場合、一度に1つのクリップしか保存できないことです)。

それを超えて、MicrosoftがMicrosoftOfficeのいくつかのバージョンでWindowsクリップボードにいくつかの非常に奇妙なことをしたことに注意する必要があります。この点でOfficeのどのバージョンが最悪の違反者であったかは思い出せませんが、そのうちの1つをインストールした後、関連機能を無効にするまでクリップボードの操作がひどく台無しになっていたことは知っています。私の記憶では、これらの問題はOfficeアプリケーションが実行されていない場合でも発生しました。とにかく、問題のマシンにOfficeをインストールしていない場合は、明らかにこれを無視する必要があります。

2
boot13

これを行う適切な方法は、API呼び出しを監視することです。クリップボードの操作は、user32.dllモジュールの機能です。

それらのいくつかは:

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

Spy Studio または API Monitor のようないくつかのツールを使用すると、それらの呼び出しを追跡し、誰が呼び出したのかを知ることができます。

幸運を !

2
user8228