读取剪贴板文件信息

来源:互联网 发布:数据库查询小工具 编辑:程序博客网 时间:2024/05/21 18:21

哎,今天来了一个临时功能,要求我将剪贴板中的文件信息做处理,尽管和框架没有什么关系,但还是要实现。

系统剪贴板的内容说白了就是在特定的时间内存分配的一个区域,随后复制的内容都会取代先前的内容,在C#中操作剪贴板我需要使用到System.Windows.Forms.Clipboard类.只实现读取剪贴板中复制的文件很简单代码如下:

          private void button1_Click(object sender, System.EventArgs e)
         {
              //一个列表,我测试用的
              FileList.Items.Clear();
              //获取剪贴板的内容
              IDataObject iData=Clipboard.GetDataObject();
              //因为第一次用,我也不知道是什么类型,不过可以用此方法告诉我是何类型
              string[] type=iData.GetFormats();
              for(int n=0;n<type.Length;n++)
                   FileList.Items.Add(type[n]);
              //以上除了获取剪贴板的IDataObject其它都是自己做测试
              //根据上面测试下来,发现是DataFormats.FileDrop类型的
              //在iData.GetData(DataFormats.FileDrop)设断点看看内容,发现是string类型
              //定义文件列表
              string[] files=null;
              //判断此类型是否存在
              if(iData.GetDataPresent(DataFormats.FileDrop))
                   try
                   {
                        files=(string[])iData.GetData(DataFormats.FileDrop);
                   }
                   catch(Exception ex)
                   {
                        ex.ToString();
                   }
              //以上try..catch可以省略了,测试用的。
         }
 

当前还可以在应用程序上加定时器,当有你需要的格式内容可以自动的加载到需要的地方,总而言之,原理有了可以做更多的处理。

 其实还有很多种类型的读取,可以在MSDN上看看相关信息

IDataObject,DataFormats格式类型。

 

原创粉丝点击