对c#剪切板Clipboard占用的问题一点解决方法
以前在百度写的文档,转移到此处
前几天做一个程序,其中有一个剪切板的操作,具体代码:
Clipboard.SetText(“ABC”);
来完成一个复制字符串的操作。
自己调试通过,完全正常,然后就交给一位朋友做测试。但是他告诉我这个复制操作总是引起崩溃。并弹出“请求剪切板失败”的提示。于是在网上找了一下相关的内容,原来是不同进程之间争用剪切板引起的,剪切板是系统的公用资源,大多数软件都会提供对该区域访问的操作,就以迅雷为例:迅雷有一个监视剪切板的功能,具体实现不清楚,但肯定的是会经常去访问剪切板,如果迅雷正在使用剪切板时自己写的程序也要访问,那么就会产生一个ExternalException的异常,如图
这是我的一点解决方法:
先看代码:
try
{
Clipboard.SetText(“ABC”);
}
catch (Exception ex)
{
Application.DoEvents();
Clipboard.SetText(“ABC”);
}
即先让进程去访问剪切板,如果产生错误,那么就调用Application.DoEvents();让系统完成现有的操作,然后再次执行对剪切板的操作。使用该方法后,效果明显。在写该文章前未发生上述错误提示。
总结:其实这段代码并不是很好,首先不符合代码规范--不应该使用try{}cath{}进行条件判断。其次如果在第二次访问剪切板也被且他进程占用依然会出错。所以发布该篇文章用以抛砖引玉,希望读者提供更好的解决方案。
对c#剪切板Clipboard占用的问题一点解决方法的更多相关文章
- [转帖]win10 .Net Runtime Optimization Service占用大量CPU资源解决方法
win10 .Net Runtime Optimization Service占用大量CPU资源解决方法 https://blog.csdn.net/cwg2552298/article/detail ...
- C#操作剪切板(Clipboard)
剪切板是Windows系统提供的功能,从我最早接触到的Windows 3.2版本开始,就一直带着了.以前使用C++的时候,是直接使用Windows API对其进行操作的,到了.NET下,在WinFor ...
- C# 使用WinApi操作剪切板Clipboard
前言: 最近正好写一个程序,需要操作剪切板 功能很简单,只需要从剪切板内读取字符串,然后清空剪切板,然后再把字符串导入剪切板 我想当然的使用我最拿手的C#来完成这项工作,原因无他,因为.Net框架封装 ...
- 在Java中调用与系统有关的剪切板Clipboard
java从1.5版开始已经能与系统的剪切板很好的交互了. 如果可以在程序中直接调用系统的剪切板来保存“复制”的对象内容,那可以说的比之前的想法好很多. 下面是一个对java.io.File对象进行co ...
- 阿里云kubernetes遭入侵pubg进程占用cpu资源100%解决方法
发现服务器CPU占用100%,通过top命令发现pubg -c config.json -t 2占用CPU资源,kill进程会自动启动.黑客入侵方式是kubernetes创建pod. Name: ku ...
- C# Winform应用程序占用内存较大解决方法整理(转)
原文:http://www.jb51.net/article/56682.htm 背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂 ...
- (转)C# Winform应用程序占用内存较大解决方法整理
背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰 ...
- C# Winform应用程序占用内存较大解决方法整理
微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其 ...
- 80端口被NT kernel & System 占用pid= 4的解决方法
引用http://www.2cto.com/os/201111/111269.html的方法.亲测可用 该进程是Http.sys.它是http API的驱动组件,Http栈服务器.如果该端口被Http ...
随机推荐
- APP制作过程
直播App开发的过程 第一步:分解直播App的功能,我们以X客为例 视频直播功能,这是一款直播App最主要的功能,要能支持视频直播RTMP推流,使画面传输流畅.清晰(美颜后的清晰,你懂的聊天功能,用户 ...
- delphi 简单的删除字符串尾部数字的代码
delphi 简单的删除字符串尾部数字的代码 方式一: function FilterShowName(const sName: String): String; var I: Integer; b ...
- Qt 界面使用自己定义控件 "提升为"
1.效果图 我做了一个很easy的样例,一个能够显示颜色的QLabel,边上有个button,点击,跳出颜色选取的Dialog,然后选择一个颜色.这个QLabel会变成什么颜色. 2.ColorLab ...
- 支持多QQ登录的软件
支持多QQ登录,批量加好友,批量回复QQ消息,当然也能接收 下载链接:多QQ登录软件
- C#基础:命令解析
1.普通格式命令的解析 例如: RENA<SP>E:\\A.txt<SP>C:\\B.txt<CRLF> (SP -> 空格,CRLF -> 回车加换行 ...
- 用CSS3写的钟表
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Sass函数--map
MapSass 的 map 常常被称为数据地图,也有人称其为数组,是以 key:value 成对的出现. $map: ( $key1: value1, $key2: value2, $key3: va ...
- (转)简易WCF负载均衡方案
最近跟高老师讨论nginx跟tomcat集群做负载均衡方案.感觉很有意思.想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现.不 ...
- ORACLE SQL单行函数(二)【weber出品必属精品】
11.dual:虚表,任何用户都可以使用,表结构如下: SQL> desc dual Name Null? Type -------------------------------------- ...
- hdu 1258 DFS
I - 深搜 基础 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:10000KB 64bi ...