【发布时间】:2012-04-05 08:29:24
【问题描述】:
我想捕获屏幕但没有当前表单,我尝试最小化 -> 捕获 -> 最大化,但如果存在,我正在寻找更好的解决方案。这是我的代码::
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,您不必隐藏它。不是功能,是错误。
-
@Hans 这就是我在 Vista 上所做的并且对(不透明度
-
没关系,我解决了。与在 Win 7 PC 上启用 Aero 有关;故事的寓意:截屏时禁用 Aero(Aero = 无用功能)
标签: c# screen-capture