時間の最後の数時間にわたって、別のアプリケーションでクリップボードが開いているために発生するかなりの特定のバグを追跡しています。クリップボード("Why does my shared clipboard not work?"あたりなど)の共有リソースであり、あなたがブロックされたクリップボードとその他の奇妙さを処理する方法
Clipboard.SetText(string)
または
Clipboard.Clear().
を実行しようとして、基本的に次の例外がスローされます。
System.Runtime.InteropServices.ExternalException: Requested Clipboard operation did not succeed. at System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr) at System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay) at System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format) at System.Windows.Forms.Clipboard.SetText(String text)
私の最初のソリューションでした私はClipboard.SetDataObjectが時間の長さと遅延の長さのフィールドを持っていることに気付くまで、短い一時停止後に再試行するために、.NETのデフォルトの動作は試してみることです100msecの遅延で10回。
エンドユーザーが気づいたことは1つあります。つまり、クリップボードへのコピー操作が実行されても例外がありますが、これがなぜ発生するのかについての詳しい情報は見つかりませんでした。
問題に対する私の現在の解決策は、例外を黙って無視することです...これは本当に最善の方法ですか?
私はGetOpenClipboardWindowの周りを読んでいますが、これはクリップボードアクセスの問題に最適な解決策だと思われます。お返事をありがとうございます。 –
プロセスを取得してクリップボードをブロックする方法 - http://stackoverflow.com/questions/6583642/determine-which-process-is-locking-the-clipboard – toong
クリップボードを最初に閉じます。私の答えを見てください。 – Triynko