我嘗試從剪貼板中獲取屏幕截圖。我寫了以下PRINT-Key觸發的代碼:如何從剪貼板獲取截圖?
IDataObject obj = Clipboard.GetDataObject();
var formats = obj.GetFormats();
但「格式」爲空。 www中的所有教程都告訴我這樣做,但我不能解釋上述行爲。
(我使用C#.NET藤條4.0在Windows 7 64位系統)
我嘗試從剪貼板中獲取屏幕截圖。我寫了以下PRINT-Key觸發的代碼:如何從剪貼板獲取截圖?
IDataObject obj = Clipboard.GetDataObject();
var formats = obj.GetFormats();
但「格式」爲空。 www中的所有教程都告訴我這樣做,但我不能解釋上述行爲。
(我使用C#.NET藤條4.0在Windows 7 64位系統)
發現我的keylistener阻止了windows-keylistener。這也是爲什麼窗口haven't在剪貼板中保存的截圖:-(
解決方法:
// get the bounding area of the screen containing (0,0)
// remember in a multidisplay environment you don't know which display holds this point
Drawing.Rectangle bounds = Forms.Screen.GetBounds(System.Drawing.Point.Empty);
// create the bitmap to copy the screen shot to
Drawing.Bitmap bitmap = new Drawing.Bitmap(bounds.Width, bounds.Height);
// now copy the screen image to the graphics device from the bitmap
using (Drawing.Graphics gr = Drawing.Graphics.FromImage(bitmap))
{
gr.CopyFromScreen(Drawing.Point.Empty, Drawing.Point.Empty, bounds.Size);
}
您是否嘗試過的方法Clipboard.GetImage();
?
Image GetClipboardImage()
{
if (Clipboard.ContainsImage())
{
return Clipboard.GetImage();
}
// add error handling
}
聽起來像你對我需要另一個PRINT鍵,你從來沒有說過「但其他程序可以看到它。」 –
以及我想在我的帖子中解釋,截圖是因爲我可以通過它來繪製,但我希望它很明顯;-) – jwillmer