IDataObject oldClipboard = Clipboard.GetDataObject();
    DataObject newClipboard = new DataObject();
    string[] s;
    s = oldClipboard.GetFormats();
    foreach(string ns in s)
    {
     newClipboard.SetData(ns,oldClipboard.GetData(ns));
    }

     //执行自己的代码 
     Clipboard.SetDataObject(newClipboard,true);    
在一些情况下,调用Clipboard.GetDataObject会出错,
传说中,以上的代码可以一试,
虽然我试过,对我的情况没有用!