问题:
WPF中执行下述语句:
Clipboard.SetText(“something”);
报异常:
OpenClipboard 失败 (Exception fromHRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
分析:
剪切板(Clipboard)是况态资源,可能有其他进程访问,所以打开剪切板(置入内容前的子动作)时,会报异常。
也行是Windows的一个Bug,没有提供用户这方面的判断。
解决:
最简单的办法就是多试几遍:
for (int i = 0;i < 10; i++)
{
try
{
Clipboard.SetText(sb.ToString());
break;
}
catch(Exception)
{ }
}