我这里遇到了一些问题。我想使用我构建的应用程序将屏幕截图保存到桌面。为此,我需要识别剪贴板上的哪些图像来自屏幕截图以及哪些图像是复制的。但我不知道该怎么做,我一直在寻找答案,但没有找到。
该应用程序的想法是它始终在后台处于事件状态,并且每当我按下 PrintScreen 按钮时,它都会直接将图像保存在我的桌面上。
最佳答案
为什么不让应用程序截屏并为您保存呢?
这可能是您确定要保存的图像是您想要的屏幕截图的唯一方法。
您可以像这样创建 bmp 屏幕截图:
Size s = Screen.PrimaryScreen.Bounds.Size;
Bitmap bmp = new Bitmap(s.Width, s.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, s);
然后像这样保存bmp:
bmp.Save("PATHANDFILENAME");
更新
根据这些附加信息,您可能会考虑保存屏幕截图和使用全局键盘 Hook (由 Tom 提供)的组合。使用钩子(Hook)应该可以捕获按下的打印屏幕,然后捕获并保存当前屏幕。此外,您也许可以取消按下的打印屏幕并阻止其将屏幕复制到剪贴板。
关于.net - 如何在 C# 中将屏幕截图与剪贴板上的副本分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4367421/