C# 线程间不能调用剪切板的问题 续集

原创 2016年05月30日 15:30:24

C# 线程间不能调用剪切板的问题  续集

获取剪切板的数据,将剪切板的数据返回

/// <summary>
        /// 从剪切板获取捕捉到的位图(Bitmap)
        /// </summary>
        /// <returns></returns>
        public Bitmap GetCaptureBitmap()
        {
            IDataObject iData = Clipboard.GetDataObject();
            Bitmap bmp = null;
            try
            {
                if (iData != null)
                {
                    if (iData.GetDataPresent(DataFormats.Bitmap))
                    {
                        bmp = (Bitmap)iData.GetData(DataFormats.Bitmap);
                    }
                    else if (iData.GetDataPresent(DataFormats.Dib))
                    {
                        bmp = (Bitmap)iData.GetData(DataFormats.Dib);
                    }
                    #region
                    //这一部分相当于要截取图像中心聚焦区域,裁切掉四周无用区域
                    //PictureBox bp = new PictureBox();
                    //bp.Width = nBmpWidth;
                    //bp.Height = nBmpHeight;
                    //bp.SizeMode = PictureBoxSizeMode.CenterImage;
                    //bp.Image = image;
                    //bmp = new Bitmap(bp.Image, bp.Width, bp.Height);
                    #endregion
                }
                Clipboard.Clear();
            }
            catch (Exception ex)
            {
                LogHelper.WriteFile("error:剪切板抓取位图异常!原因:" + ex.Message);
            }
            return bmp;
        }

        /// <summary>
        /// 从剪切板获取捕捉到的位图(Image)
        /// </summary>
        /// <returns></returns>
        public Image GetCaptureImage()
        {
            IDataObject iData = Clipboard.GetDataObject();
            Image image = null;
            try
            {
                if (iData != null)
                {
                    if (iData.GetDataPresent(DataFormats.Bitmap))
                    {
                        image = (Image)iData.GetData(DataFormats.Bitmap);
                    }
                    else if (iData.GetDataPresent(DataFormats.Dib))
                    {
                        image = (Image)iData.GetData(DataFormats.Dib);
                    }
                    #region
                    //这一部分相当于要截取图像中心聚焦区域,裁切掉四周无用区域
                    //PictureBox bp = new PictureBox();
                    //bp.Width = nBmpWidth;
                    //bp.Height = nBmpHeight;
                    //bp.SizeMode = PictureBoxSizeMode.CenterImage;
                    //bp.Image = image;
                    //bmp = new Bitmap(bp.Image, bp.Width, bp.Height);
                    #endregion
                }
                Clipboard.Clear();
            }
            catch (Exception ex)
            {
                LogHelper.WriteFile("error:剪切板抓取位图异常!原因:" + ex.Message);
            }
            return image;
        }

Chrome扩展开发学习笔记之带选项页面的扩展

简介有一些扩展允许用户进行个性化设置,这样就需要向用户提供一个选项页面。Chrome通过Manifest文件的options_page属性为开发者提供了这样的接口,可以为扩展指定一个选项页面。当用户在...

windows客户端开发--通过ShellExecute函数打开浏览器

在我们的客户端中常常会有一些link,点击后希望通过浏览器导航到该链接。我们是通过ShellExecute函数来实现的。ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打...

web开发中常常要实现“复制到剪切板”功能。这个功能很实用,但是由于安全问题,浏览器的限制越来越严,实现的方法也越来越有限了。Firefox 默认下不能直接通过

web开发中常常要实现“复制到剪切板”功能。这个功能很实用,但是由于安全问题,浏览器的限制越来越严,实现的方法也越来越有限了。Firefox 默认下不能直接通过Javascript操作剪切板,必须开启...

兼容所有浏览器的复制到剪切板功能,悬浮层不能复制问题解决

浏览器复制其实是一个十分令人头疼的问题,因为这涉及到浏览器安全,所以浏览器本生不会提供相应接口,我们也没有办法通过纯js来实现这个功能,但是你会看到很多网站,如百度云盘他们却做到了这个功能,那究竟他们...

c#在最小化为托盘时,无法监听剪切板(clipboard)复制数据时候的变化

在做C#开发中,有一个需求是写一个托盘程序用于监听剪贴板的数据复制。 我遇到的问题是在正常情况下可以监听clipboard的数据变化,但是当我缩小为托盘程序的时候,托盘程序就无法监听剪贴板的数据变化了...

c#频繁读取word文件 所请求的剪切板操作失败 解决方法

前段时候在为学校做作业抄袭检测系统,当读入大量word文档时经常会出现 所请求的剪切版操作失败,如下图: 以下是读word文档时所用的源代码: protected void openFile(...

C#剪切板编程操作图片、音乐、txt==文件(神样的代码,找了好久)

来源1:http://www.cnblogs.com/webcyz/archive/2011/06/29/2092946.html

C#监控剪切板(转)

C#监控剪切板 2009-11-24 16:44   昨天看到一同学用灵格斯复制一个单词,发现复制的单词自动增加到了另C#写的程序里面去了。一时感觉还挺新鲜的,就想探讨一下。     这个功能...

Visual C#的剪切板編程(转)

Visual C#是微软.Net框架中的一个重要的程序开发语言,虽然在.Net框架中还有其它的程序开发语言,但微软似乎对Visual C#更喜爱有加。这同时也就决定了Visual C#在.Net框架中...

C#中使用系统剪切板

在C#中,我们可以使用静态类System.Windows.Clipboard 来使用系统剪切板复制和剪切内容。 Clipboard.SetText函数,向剪切板中插入内容,将制定的内容添加到剪切板; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 线程间不能调用剪切板的问题 续集
举报原因:
原因补充:

(最多只允许输入30个字)