欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

对c#剪切板Clipboard占用的问题一点解决方法

发布时间:2024/9/20 C# 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 对c#剪切板Clipboard占用的问题一点解决方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

以前在百度写的文档,转移到此处

前几天做一个程序,其中有一个剪切板的操作,具体代码:

       Clipboard.SetText(“ABC”);

来完成一个复制字符串的操作。

自己调试通过,完全正常,然后就交给一位朋友做测试。但是他告诉我这个复制操作总是引起崩溃。并弹出“请求剪切板失败”的提示。于是在网上找了一下相关的内容,原来是不同进程之间争用剪切板引起的,剪切板是系统的公用资源,大多数软件都会提供对该区域访问的操作,就以迅雷为例:迅雷有一个监视剪切板的功能,具体实现不清楚,但肯定的是会经常去访问剪切板,如果迅雷正在使用剪切板时自己写的程序也要访问,那么就会产生一个ExternalException的异常,如图

这是我的一点解决方法:

先看代码:

1 try 2 { 3 Clipboard.SetText(“ABC”); 4 } 5 catch (Exception ex) 6 { 7 Application.DoEvents(); 8 Clipboard.SetText(“ABC”); 9 }

即先让进程去访问剪切板,如果产生错误,那么就调用Application.DoEvents();让系统完成现有的操作,然后再次执行对剪切板的操作。使用该方法后,效果明显。在写该文章前未发生上述错误提示。

总结:其实这段代码并不是很好,首先不符合代码规范--不应该使用try{}cath{}进行条件判断。其次如果在第二次访问剪切板也被且他进程占用依然会出错。所以发布该篇文章用以抛砖引玉,希望读者提供更好的解决方案。

总结

以上是生活随笔为你收集整理的对c#剪切板Clipboard占用的问题一点解决方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。