1
我試圖做一個截屏管理器&錄像機,兩個截圖&視頻,雖然後者不是重要的這個問題。截圖出來黑
用戶可以選擇他/她想要捕捉的進程並設置熱鍵。
該屏幕截圖對普通桌面和一些遊戲可以正常工作。但是,當試圖從某些遊戲(例如分裂單元黑名單)捕獲屏幕截圖時,如果這些遊戲是全屏的,並且取決於Windows 7 Aero,則內容爲黑色,或者桌面在頂部顯示一個小條屏幕左側。
這是我最初的代碼:
public static Bitmap GetScreen()
{
Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
using (Graphics g = Graphics.FromImage(bmpScreenCapture))
{
g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
bmpScreenCapture.Size,
CopyPixelOperation.SourceCopy);
}
return bmpScreenCapture;
}
在我的搜索,我發現一個代碼項目的文章:
http://www.codeproject.com/Articles/274461/Very-fast-screen-capture-using-DirectX-in-Csharp
和代碼
public Surface CaptureScreen()
{
Surface s = Surface.CreateOffscreenPlain(d, rc.Width, rc.Height, Format.A8R8G8B8, Pool.Scratch);
d.GetFrontBufferData(0, s);
Surface.ToFile(s, @"C:\test\img.jpg", ImageFileFormat.Jpg);
return s;
}
稍加修改然而,也該圖像顯示爲黑色。
有沒有人有任何建議,如何做到這一點?
謝謝!實際上,現在確實需要截圖,這很好,但是這會導致桌面窗口可見的小高峯。有沒有辦法解決這個問題? –
你能告訴我它「創建」的截圖嗎? – Anwarrex