我需要屏幕捕获一个winform,它在另一个窗口的后面或前面,没有其他东西。
我可以截取一个winform的屏幕,但它基本上可以截取该区域中的所有内容。
下面是我的屏幕截图方法。
method ControlWin.capturescreen;
begin
var myGraphics := self.CreateGraphics;
var memoryGraphics := self.CreateGraphics;
var s := self.Size;
ControlScreen := new Bitmap(s.Width, s.Height, myGraphics);
memoryGraphics := Graphics.FromImage(ControlScreen);
memoryGraphics.CopyFromScreen(self.Location.X, self.Location.Y, 0, 0, s);
end;下面是它的外观:

C#或delphi-prism中的任何提示或线索都将非常感谢。谢谢,
发布于 2012-08-17 02:37:43
这在C#中起到了作用。
_onTopForm是TopMost设置为true的第二种形式。将其放在Form1上。
单击该按钮,Form1的屏幕截图将写入磁盘。_onTopForm将不会出现在截图中。
public partial class Form1 : Form
{
readonly OnTopForm _onTopForm = new OnTopForm();
public Form1()
{
InitializeComponent();
_onTopForm.Show();
_onTopForm.TopMost = true;
}
private void Button1Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(Width, Height);
DrawToBitmap(bmp, new Rectangle(Point.Empty, bmp.Size));
using (FileStream fs = new FileStream("C:\\temp\\screenshot.jpeg", FileMode.OpenOrCreate))
{
bmp.Save(fs, ImageFormat.Jpeg);
}
}
}
public partial class OnTopForm : Form
{
public OnTopForm()
{
InitializeComponent();
}
}https://stackoverflow.com/questions/11991326
复制相似问题