我想捕捉屏幕,但沒有當前的形式,我試圖最小化 - >捕捉 - >最大化,但我正在尋找一個更好的解決方案,如果存在。這是我的代碼::在C#中捕獲屏幕但不是當前窗體?
int w = this.Width;
int h = this.Height;
Size sz = this.Size;
Point loc = this.Location;
this.WindowState = FormWindowState.Minimized;
System.Threading.Thread.Sleep(500);
using (Bitmap b = new Bitmap(w, h))
{
using (Graphics g = Graphics.FromImage(b))
{
g.CopyFromScreen(loc, new Point(0, 0), sz);
}
b.Save(Environment.CurrentDirectory + "\\slides\\screen.jpeg");
this.BackgroundImage = System.Drawing.Image.FromFile(@"slides\screen.jpeg");
}
this.WindowState = FormWindowState.Maximized;
我問是否有直接的方式把捕獲的圖像作爲窗體背景,而不保存它。
只需在設計器中將窗體的不透明度設置爲99,您就不必隱藏它。不是功能,這是一個錯誤。 – 2012-04-05 08:33:18
@Hans這是我在Vista上做的並且滿意(不透明度<100),直到我在Win 7上測試;我的表單總是被捕獲(不是我想要的,想要捕獲我的表單下的內容而不隱藏它 - 任何想法? – joedotnot 2012-05-19 14:12:56
沒關係,我已經完成了。故事的道德:在截圖時禁用Aero(Aero =無用功能) – joedotnot 2012-05-19 15:23:05