全屏截图 c#

tcxx2008 2010-01-26 02:19:24
我的程序(叫A)里需要一个全屏截图的功能。

取全屏的语句如下:
Image baseImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(baseImage);
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
g.Dispose();
baseImage.Save("baseImage.bmp",ImageFormat.Bmp);

在A程序中,能取到全屏的图片,但A的相关界面会没掉(包括A主界面,截屏窗体界面)。

注:在测试环境下,一样的代码,主程序的界面能够保存到,
分析可能是父窗体中的某些代码引起的?

目前还不知道原因,碰到过的朋友指点下?
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcxx2008 2010-01-27
  • 打赏
  • 举报
回复
真的见鬼了
tcxx2008 2010-01-26
  • 打赏
  • 举报
回复
是的,我的意思是:是不是有某些设置能让主程序界面没掉的?叫大家帮我分析,提供点思路

我另起一个项目,弄一个窗体,弄个按钮,在按钮里加上面的代码,运行了也是正确的,包含主程序窗体的。
samuellei 2010-01-26
  • 打赏
  • 举报
回复
本机测试 没有问题
Baesky 2010-01-26
  • 打赏
  • 举报
回复
诡异了。。。。我测试不管在debug还是realease都能截到。。。
cj548820 2010-01-26
  • 打赏
  • 举报
回复
private void btnJieTu_Click(object sender, EventArgs e)
{
IntPtr ptr = CreateDC("DISPLAY", null, null, (IntPtr)null);//创建当前屏幕的DC对象
Graphics currentG = Graphics.FromHdc(ptr); //创建以屏幕大小为标准的位图对象
Image myImage = new Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, currentG);
IntPtr screenPtr = currentG.GetHdc();//得到屏幕DC
Graphics imageG = Graphics.FromImage( myImage );
IntPtr imagePtr = imageG.GetHdc();//得到位图的DC
BitBlt(imagePtr, 0, 0, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, screenPtr, 0, 0, 13369376);//截图
currentG.ReleaseHdc(screenPtr);//释放DC
imageG.ReleaseHdc(imagePtr);
myImage.Save(@"C:\screen.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
MessageBox.Show("OK");

}

没遇到...
tcxx2008 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baesky 的回复:]
我测试的结果是 主程序和相关界面都能保存到呀。。。
本身语句应该没问题的。
[/Quote]

我的问题就是:我的主程序界面明明在屏幕上的,但实际取到的是没有我主程序界面的。

测试环境下我的也是可以的,怪就怪在这里
Baesky 2010-01-26
  • 打赏
  • 举报
回复
我测试的结果是 主程序和相关界面都能保存到呀。。。
本身语句应该没问题的。
Baesky 2010-01-26
  • 打赏
  • 举报
回复
在A程序中,能取到全屏的图片,但A的相关界面会没掉(包括A主界面,截屏窗体界面)。

注:在测试环境下,一样的代码,主程序的界面能够保存到,
分析可能是父窗体中的某些代码引起的?

不掏清楚你的意思,你是不是想截图的时候 不包含你的程序界面 只有屏幕上的桌面和其他程序的截图?
qq497525725 2010-01-26
  • 打赏
  • 举报
回复
不懂 顶下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧