如何实现和QQ里面一样的截屏功能啊? 参看以下帖子:http://expert.csdn.net/Expert/topic/2854/2854751.xml 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取桌面窗口的HDC句柄, 计算出鼠标拖动的矩形的位置,大小,调用BitBlt函数截屏.private Bitmap GetDesktopBitmap() { int Start = Environment.TickCount; Size DesktopBitmapSize = GetDesktopBitmapSize(); Graphics Graphic = Graphics.FromHwnd(GetDesktopWindow()); int GraphicsFromHwndTime = Environment.TickCount - Start; Start = Environment.TickCount; Bitmap MemImage = new Bitmap(DesktopBitmapSize.Width, DesktopBitmapSize.Height, Graphic); int MemImageTime = Environment.TickCount - Start; Start = Environment.TickCount; Graphics MemGraphic = Graphics.FromImage(MemImage); int FromImageTime = Environment.TickCount - Start; IntPtr dc1 = Graphic.GetHdc(); IntPtr dc2 = MemGraphic.GetHdc(); BitBlt(dc2, 0, 0, DesktopBitmapSize.Width, DesktopBitmapSize.Height, dc1, 0, 0, SRCCOPY); int BitBltTime = Environment.TickCount - Start; Graphic.ReleaseHdc(dc1); MemGraphic.ReleaseHdc(dc2); Console.WriteLine("GraphicsFromHwndTime: " + GraphicsFromHwndTime.ToString()); Console.WriteLine("MemImageTime: " + MemImageTime.ToString()); Console.WriteLine("FromImageTime: " + FromImageTime.ToString()); Console.WriteLine("BitBltTime: " + BitBltTime.ToString()); Graphic.Dispose(); MemGraphic.Dispose(); return MemImage; } 如何判断是否最小化了? 请教System.Web.Hosting 作HTTP服务的教程或例子。200分 再次提问,怎么把一个已经存在的dataTable和数据库搭上关系? WinFrom 控件 问题 tcpClient/socket编程关于延时的处理 如何得到IIS中站点状态及如何删除Windows中系统用户 如何在.Net中画出B样条曲线? DTS 在.Net如何用?哪里有资料和例子? textbox问题若干 外部文件如何与数据库中的内容比较 好着急,等待中,(数据库SQL的统计,DATASET,DATAREADER) 急!打包?
{
int Start = Environment.TickCount; Size DesktopBitmapSize = GetDesktopBitmapSize(); Graphics Graphic = Graphics.FromHwnd(GetDesktopWindow()); int GraphicsFromHwndTime = Environment.TickCount - Start;
Start = Environment.TickCount; Bitmap MemImage = new Bitmap(DesktopBitmapSize.Width, DesktopBitmapSize.Height, Graphic); int MemImageTime = Environment.TickCount - Start;
Start = Environment.TickCount; Graphics MemGraphic = Graphics.FromImage(MemImage); int FromImageTime = Environment.TickCount - Start; IntPtr dc1 = Graphic.GetHdc();
IntPtr dc2 = MemGraphic.GetHdc();
BitBlt(dc2, 0, 0, DesktopBitmapSize.Width, DesktopBitmapSize.Height, dc1, 0, 0, SRCCOPY); int BitBltTime = Environment.TickCount - Start; Graphic.ReleaseHdc(dc1);
MemGraphic.ReleaseHdc(dc2);
Console.WriteLine("GraphicsFromHwndTime: " + GraphicsFromHwndTime.ToString());
Console.WriteLine("MemImageTime: " + MemImageTime.ToString());
Console.WriteLine("FromImageTime: " + FromImageTime.ToString());
Console.WriteLine("BitBltTime: " + BitBltTime.ToString()); Graphic.Dispose();
MemGraphic.Dispose(); return MemImage;
}