c#实现winform屏幕截图并保存的示例

2014-12-01 10:02:59  访问(4399) 赞(0) 踩(0)

using System.Runtime.InteropServices;
using System.Drawing.Imaging;
    [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
    private static extern bool BitBlt(

                    IntPtr hdcDest,   //   目标   DC的句柄   
                    int nXDest,
                    int nYDest,
                    int nWidth,
                    int nHeight,
                    IntPtr hdcSrc,     //   源DC的句柄   
                    int nXSrc,
                    int nYSrc,
                    System.Int32 dwRop     //   光栅的处理数值   
                      ); 
  private   void   button1_Click(object   sender,   System.EventArgs   e)   
  {   
  //获得当前屏幕的大小
  Rectangle   rect   =   new   Rectangle   (   )   ;   
  rect   =   Screen.GetWorkingArea   (   this   )   ;   
  //创建一个以当前屏幕为模板的图象   
  Graphics   g1   =   this.CreateGraphics   (   )   ;   
  //创建以屏幕大小为标准的位图     
  Image   MyImage   =   new   Bitmap   (   rect.Width   ,   rect.Height   ,   g1   )   ;   
  Graphics   g2   =   Graphics.FromImage   (   MyImage   )   ;   
  //得到屏幕的DC   
  IntPtr   dc1   =   g1.GetHdc   (   )   ;   
  //得到Bitmap的DC     
  IntPtr   dc2   =   g2.GetHdc   (   )   ;   
  //调用此API函数,实现屏幕捕获   
  BitBlt   (   dc2   ,   0   ,   0   ,   rect.Width   ,   rect.Height   ,   dc1   ,   0   ,   0   ,   13369376   )   ;   
  //释放掉屏幕的DC   
  g1.ReleaseHdc   (   dc1   )   ;   
  //释放掉Bitmap的DC     
  g2.ReleaseHdc   (   dc2   )   ;   
  //以JPG文件格式来保存   
  MyImage.Save   (   @"c:/Capture.jpg"   ,   ImageFormat.Jpeg   );   
  MessageBox.Show   (   "当前屏幕已经保存为C盘的capture.jpg文件!"   )   ;   
  }



标签:c#实现winform屏幕截图并保存的示例    屏幕截图 

上一条:

下一条:


版权声明:
如果本站的资源使用了您的作品,请联系我们,我们会及时的注明
本站所有的资源均为免费自由下载,目的是让大家学习和交流
由于收集过程中几经转载,所以很多作品的原作者不详
如果您不愿在本站展示,请联系我们,我们会及时删除
 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)