在 C# winform 应用程序中。我正在编写一个剪贴板日志管理器,它将文本记录到日志文件中,(每次按下 Ctrl+c/x 时,复制/剪切的文本都会附加到文件中)我也对图像做了同样的事情,也就是说,如果你按“prtScreen”,您拍摄的屏幕截图也会转到一个文件夹。
我通过使用计时器来做到这一点,在里面我有一些“看起来”像这样的东西:
if (Clipboard.ContainsImage())
{
if (IsClipboardUpdated())
{
LogData();
UpdateLastClipboardData();
}
}
其余方法如下所示:
public void UpdateLastClipboardData()
{
// ... other updates
LastClipboardImage = Clipboard.GetImage();
}
// This is how I determine if there's a new image in the clipboard...
public bool IsClipboardUpdated()
{
return (LastClipboardImage != Clipboard.GetImage());
}
public void LogData()
{
Clipboard.GetImage().Save(ImagesLogFolder + "\\Image" + now_hours + "_" + now_mins + "_" + now_secs + ".jpg");
}
问题是:在更新方法中,“LastClipboardImage != Clipboard.GetImage()”总是返回 true!
我什至在更新方法中做了以下事情:
Image img1 = Clipboard.GetImage();
Image img2 = Clipboard.GetImage();
Image img3 = img2;
bool b1 = img1 == img2; // this returned false. WHY??
bool b2 = img3 == img2; // this returned true. Makes sense.
请帮忙,比较不起作用...为什么?