0

我正在调查一件有趣的事情。我想在我的 C# 程序中从剪贴板获取图像。

代码示例:

[STAThread]
public Image GetClipboardImage()
{
    MessageBox.Show("try to get image");
    Image returnImage = null;
    if (Clipboard.ContainsImage())
    {
        MessageBox.Show("getting image");
        returnImage = Clipboard.GetImage();
    }
    return returnImage;
}

当我尝试从任何网站获取复制到剪贴板的图像时,上面的代码效果很好。但是当我从我的计算机(我的意思是桌面)复制图像时它不起作用。Clipboard.ContainsImage()在第二种情况下返回false

从网络复制和从桌面复制之间的另一个区别:在第一种情况下,我无法将图像从剪贴板粘贴到计算机上的文件夹中。当然在第二种情况下是可以做到的。似乎在第二种情况下,有一个真实图像和一个包含该图像的文件。但我不确定是否可以。

那么,我的情况是什么问题以及如何解决?

4

1 回答 1

0

下一个代码演示了一个适当的解决方案

IDataObject myDataObject = Clipboard.GetDataObject();
string[] files = (string[])myDataObject.GetData(DataFormats.FileDrop);
MessageBox.Show(files[0]);

您将显示带有您之前复制到剪贴板的文件的完整路径的按摩框。

于 2013-08-23T10:40:59.640 回答