zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

c#Winform 实现 示例 保存 屏幕 截图
2023-06-13 09:15:17 时间

复制代码代码如下:


usingSystem.Runtime.InteropServices;
usingSystem.Drawing.Imaging;
   [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
   privatestaticexternboolBitBlt(

                   IntPtrhdcDest,  //  目标  DC的句柄  
                   intnXDest,
                   intnYDest,
                   intnWidth,
                   intnHeight,
                   IntPtrhdcSrc,    //  源DC的句柄  
                   intnXSrc,
                   intnYSrc,
                   System.Int32dwRop    //  光栅的处理数值  
                     );
 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文件!"  )  ;  
 }