vsto excel 粘贴板判断包含什么内容Clipboard

本文详细介绍了.NET Framework中的Clipboard类,用于管理剪贴板数据。包括清除剪贴板、检查特定类型数据存在、获取与设置音频、文件名列表、图像及文本等操作。这些API在多线程环境中需要注意线程状态,并且在尝试访问剪贴板时可能会遇到外部异常。

Clipboard.ContainsFileDropList();

public sealed class Clipboard
    {
        //
        // 摘要:
        //     将剪贴板中删除所有数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static void Clear();
        //
        // 摘要:
        //     指示在剪贴板上是否存在数据 System.Windows.Forms.DataFormats.WaveAudio 格式。
        //
        // 返回结果:
        //     true 如果在剪贴板上; 音频数据否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static bool ContainsAudio();
        //
        // 摘要:
        //     指示在剪贴板中指定的格式或可以转换为该格式上是否存在数据。
        //
        // 参数:
        //   format:
        //     要查找的数据的格式。 请参阅 System.Windows.Forms.DataFormats 的预定义的格式。
        //
        // 返回结果:
        //     true 在指定的剪贴板上是否存在数据 format 也可以是已转换为该格式; 否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static bool ContainsData(string format);
        //
        // 摘要:
        //     指示在位于剪贴板上是否存在数据 System.Windows.Forms.DataFormats.FileDrop 或可以转换为该格式的格式。
        //
        // 返回结果:
        //     true 如果在剪贴板上; 文件下拉列表否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static bool ContainsFileDropList();
        //
        // 摘要:
        //     指示在位于剪贴板上是否存在数据 System.Windows.Forms.DataFormats.Bitmap 或可以转换为该格式的格式。
        //
        // 返回结果:
        //     true 如果在剪贴板上; 图像数据否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static bool ContainsImage();
        //
        // 摘要:
        //     指示是否存在文本数据在剪贴板上表示由指定的格式 System.Windows.Forms.TextDataFormat 值。
        //
        // 参数:
        //   format:
        //     System.Windows.Forms.TextDataFormat 值之一。
        //
        // 返回结果:
        //     true 如果文本数据在剪贴板上中没有为指定的值 format; 否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ComponentModel.InvalidEnumArgumentException:
        //     format 不是有效的 System.Windows.Forms.TextDataFormat 值。
        public static bool ContainsText(TextDataFormat format);
        //
        // 摘要:
        //     指示在剪贴板上是否存在数据 System.Windows.Forms.TextDataFormat.Text 或 System.Windows.Forms.TextDataFormat.UnicodeText
        //     格式,具体取决于操作系统。
        //
        // 返回结果:
        //     true 如果在剪贴板上; 文本数据否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static bool ContainsText();
        //
        // 摘要:
        //     从剪贴板检索的音频流。
        //
        // 返回结果:
        //     一个 System.IO.Stream 包含音频数据或 null 如果剪贴板不包含中的任何数据 System.Windows.Forms.DataFormats.WaveAudio
        //     格式。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static Stream GetAudioStream();
        //
        // 摘要:
        //     从剪贴板中指定的格式检索数据。
        //
        // 参数:
        //   format:
        //     要检索的数据的格式。 请参阅 System.Windows.Forms.DataFormats 的预定义的格式。
        //
        // 返回结果:
        //     System.Object 表示剪贴板数据或 null 如果剪贴板不包含任何数据,则指定 format 或可以转换为该格式。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static object GetData(string format);
        //
        // 摘要:
        //     检索当前系统剪贴板上的数据。
        //
        // 返回结果:
        //     System.Windows.Forms.IDataObject 表示当前在剪贴板上的数据或 null 如果没有在剪贴板上的数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     无法从剪贴板检索数据。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式和 System.Windows.Forms.Application.MessageLoop 属性值是 true。
        //     添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static IDataObject GetDataObject();
        //
        // 摘要:
        //     从剪贴板检索的文件名称的集合。
        //
        // 返回结果:
        //     一个 System.Collections.Specialized.StringCollection 包含文件的名称或 null 如果剪贴板不包含任何数据,则
        //     System.Windows.Forms.DataFormats.FileDrop 设置格式或可以转换为该格式。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static StringCollection GetFileDropList();
        //
        // 摘要:
        //     从剪贴板检索的图像。
        //
        // 返回结果:
        //     System.Drawing.Image 表示剪贴板图像数据或 null 如果剪贴板不包含任何数据,则 System.Windows.Forms.DataFormats.Bitmap
        //     设置格式或可以转换为该格式。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static Image GetImage();
        //
        // 摘要:
        //     从剪贴板中检索文本数据 System.Windows.Forms.TextDataFormat.Text 或 System.Windows.Forms.TextDataFormat.UnicodeText
        //     格式,具体取决于操作系统。
        //
        // 返回结果:
        //     剪贴板文本数据或 System.String.Empty 如果剪贴板不包含中的数据 System.Windows.Forms.TextDataFormat.Text
        //     或 System.Windows.Forms.TextDataFormat.UnicodeText 格式,具体取决于操作系统。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        public static string GetText();
        //
        // 摘要:
        //     检索从剪贴板中指示由指定的格式的文本数据 System.Windows.Forms.TextDataFormat 值。
        //
        // 参数:
        //   format:
        //     System.Windows.Forms.TextDataFormat 值之一。
        //
        // 返回结果:
        //     剪贴板文本数据或 System.String.Empty 如果剪贴板不包含指定格式的数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ComponentModel.InvalidEnumArgumentException:
        //     format 不是有效的 System.Windows.Forms.TextDataFormat 值。
        public static string GetText(TextDataFormat format);
        //
        // 摘要:
        //     清除剪贴板,然后添加 System.IO.Stream 中 System.Windows.Forms.DataFormats.WaveAudio 格式。
        //
        // 参数:
        //   audioStream:
        //     一个 System.IO.Stream 包含音频数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     audioStream 为 null。
        public static void SetAudio(Stream audioStream);
        //
        // 摘要:
        //     清除剪贴板,然后添加 System.Byte 数组 System.Windows.Forms.DataFormats.WaveAudio 后将其转换为格式
        //     System.IO.Stream。
        //
        // 参数:
        //   audioBytes:
        //     一个 System.Byte 数组,其中包含音频数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     audioBytes 为 null。
        public static void SetAudio(byte[] audioBytes);
        //
        // 摘要:
        //     清除剪贴板,然后添加指定的格式的数据。
        //
        // 参数:
        //   format:
        //     要设置的数据的格式。 请参阅 System.Windows.Forms.DataFormats 的预定义的格式。
        //
        //   data:
        //     System.Object 表示要添加的数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     data 为 null。
        public static void SetData(string format, object data);
        //
        // 摘要:
        //     清除剪贴板,并在其上将非持久性数据。
        //
        // 参数:
        //   data:
        //     要将放置在剪贴板上的数据。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     无法在剪贴板上放置数据。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     data 的值为 null。
        public static void SetDataObject(object data);
        //
        // 摘要:
        //     清除剪贴板,然后尝试将数据放在其上指定的数目的次数和具有指定的尝试,(可选) 后将数据保留在剪贴板上退出应用程序之间的延迟。
        //
        // 参数:
        //   data:
        //     要将放置在剪贴板上的数据。
        //
        //   copy:
        //     true 如果您希望此应用程序退出; 后将保留在剪贴板数据否则为 false。
        //
        //   retryTimes:
        //     尝试将数据放到剪贴板上的次数。
        //
        //   retryDelay:
        //     要尝试之间暂停的毫秒数。
        //
        // 异常:
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     data 为 null。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     retryTimes 小于零。 - 或 - retryDelay 小于零。
        //
        //   T:System.Runtime.InteropServices.ExternalException:
        //     无法在剪贴板上放置数据。 这通常在另一个进程正在使用剪贴板时发生。
        public static void SetDataObject(object data, bool copy, int retryTimes, int retryDelay);
        //
        // 摘要:
        //     清除剪贴板,然后将数据放在其上并指定是否将数据保留在该应用程序退出后。
        //
        // 参数:
        //   data:
        //     要将放置在剪贴板上的数据。
        //
        //   copy:
        //     true 如果您希望此应用程序退出; 后将保留在剪贴板数据否则为 false。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     无法在剪贴板上放置数据。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     data 的值为 null。
        public static void SetDataObject(object data, bool copy);
        //
        // 摘要:
        //     清除剪贴板,然后添加集合中的文件名称 System.Windows.Forms.DataFormats.FileDrop 格式。
        //
        // 参数:
        //   filePaths:
        //     一个 System.Collections.Specialized.StringCollection 包含的文件的名称。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     filePaths 为 null。
        //
        //   T:System.ArgumentException:
        //     filePaths 不包含任何字符串。 - 或 - 至少一个中的字符串 filePaths 是 System.String.Empty, ,仅包含空白,由包含一个或多个无效字符
        //     System.IO.Path.InvalidPathChars, ,是 null, ,包含一个冒号 (:),或者超过了系统定义的最大长度。 请参阅 System.Exception.InnerException
        //     属性 System.ArgumentException 有关详细信息。
        public static void SetFileDropList(StringCollection filePaths);
        //
        // 摘要:
        //     清除剪贴板,然后添加 System.Drawing.Image 中 System.Windows.Forms.DataFormats.Bitmap 格式。
        //
        // 参数:
        //   image:
        //     System.Drawing.Image 将添加到剪贴板。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     image 为 null。
        public static void SetImage(Image image);
        //
        // 摘要:
        //     清除剪贴板,然后添加中的文本数据 System.Windows.Forms.TextDataFormat.Text 或 System.Windows.Forms.TextDataFormat.UnicodeText
        //     格式,具体取决于操作系统。
        //
        // 参数:
        //   text:
        //     要添加到剪贴板的文本。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     text 是 null 或 System.String.Empty。
        public static void SetText(string text);
        //
        // 摘要:
        //     清除剪贴板,然后指示由指定的格式添加文本数据 System.Windows.Forms.TextDataFormat 值。
        //
        // 参数:
        //   text:
        //     要添加到剪贴板的文本。
        //
        //   format:
        //     System.Windows.Forms.TextDataFormat 值之一。
        //
        // 异常:
        //   T:System.Runtime.InteropServices.ExternalException:
        //     不会清除剪贴板。 这通常在另一个进程正在使用剪贴板时发生。
        //
        //   T:System.Threading.ThreadStateException:
        //     当前线程未处于单线程单元 (STA) 模式。 添加 System.STAThreadAttribute 到您的应用程序 Main 方法。
        //
        //   T:System.ArgumentNullException:
        //     text 是 null 或 System.String.Empty。
        //
        //   T:System.ComponentModel.InvalidEnumArgumentException:
        //     format 不是有效的 System.Windows.Forms.TextDataFormat 值。
        public static void SetText(string text, TextDataFormat format);
    }

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值