c#winform截图

using    System;   
using    System.Drawing;   
using    System.Collections;   
using    System.ComponentModel;   
using    System.Windows.Forms;   
using    System.Data;   
using    System.Drawing.Imaging;   
    
namespace    WindowsApplication1   
{   
    
///   <summary>   
    
///   Form1   的摘要说明。   
    
///   </summary>   

    public   class   Form1   :   System.Windows.Forms.Form   
    
{   
        
private   System.Windows.Forms.Button   button1;   
        
///   <summary>   
        
///   必需的设计器变量。   
        
///   </summary>   

        private   System.ComponentModel.Container   components   =   null;   
    
        
public   Form1()   
        
{   
            
//   
            
//   Windows   窗体设计器支持所必需的   
            
//   
            InitializeComponent();   
    
            
//   
            
//   TODO:   在   InitializeComponent   调用后添加任何构造函数代码   
            
//   
        }
   
    
        
///   <summary>   
        
///   清理所有正在使用的资源。   
        
///   </summary>   

        protected   override   void   Dispose(   bool   disposing   )   
        
{   
            
if(   disposing   )   
            
{   
                
if   (components   !=   null)     
                
{   
                    components.Dispose();   
                }
   
            }
   
            
base.Dispose(   disposing   );   
        }
   
    
        
Windows   Form   Designer   generated   code   
    
        
///   <summary>   
        
///   应用程序的主入口点。   
        
///   </summary>   

        [STAThread]   
        
static   void   Main()     
        
{   
            Application.Run(
new   Form1());   
        }
   
    
        [   System.Runtime.InteropServices.DllImportAttribute   (   
"gdi32.dll"   )   ]   
        
private   static   extern   bool   BitBlt   (   
            IntPtr   hdcDest   ,   
//目标设备的句柄   
            int   nXDest   ,   //   目标对象的左上角的X坐标   
            int   nYDest   ,   //   目标对象的左上角的X坐标   
            int   nWidth   ,   //   目标对象的矩形的宽度   
            int   nHeight   ,   //   目标对象的矩形的长度   
            IntPtr   hdcSrc   ,   //   源设备的句柄   
            int   nXSrc   ,   //   源对象的左上角的X坐标   
            int   nYSrc   ,   //   源对象的左上角的X坐标   
            System.Int32   dwRop   //   光栅的操作值   
            )   ;   
    
        [   System.Runtime.InteropServices.DllImportAttribute   (   
"gdi32.dll"   )   ]   
        
private   static   extern   IntPtr   CreateDC   (   
            
string   lpszDriver   ,   //   驱动名称   
            string   lpszDevice   ,   //   设备名称   
            string   lpszOutput   ,   //   无用,可以设定位"NULL"   
            IntPtr   lpInitData   //   任意的打印机数据   
            )   ;   
    
        
private   void   button1_Click(object   sender,   System.EventArgs   e)   
        
{   
            
this.Hide();   
            IntPtr   dc1   
=   CreateDC   (   "DISPLAY"   ,   null   ,   null   ,   (   IntPtr   )   null   )   ;   
            
//创建显示器的DC   
            Graphics   g1   =   Graphics.FromHdc   (   dc1   )   ;   
            
//由一个指定设备的句柄创建一个新的Graphics对象   
            Bitmap   MyImage   =   new   Bitmap   (   Screen.PrimaryScreen.Bounds.Width   ,   Screen.PrimaryScreen.Bounds.Height-25   ,   g1   )   ;   
            
//根据屏幕大小创建一个与之相同大小的Bitmap对象   
            Graphics   g2   =   Graphics.FromImage   (   MyImage   )   ;   
            
//获得屏幕的句柄   
            IntPtr   dc3   =   g1.GetHdc   (   )   ;   
            
//获得位图的句柄   
            IntPtr   dc2   =   g2.GetHdc   (   )   ;   
            
//把当前屏幕捕获到位图对象中   
            BitBlt   (   dc2   ,   0   ,   0   ,   Screen.PrimaryScreen.Bounds.Width   ,   Screen.PrimaryScreen.Bounds.Height-25   ,   dc3   ,   0   ,   0   ,   13369376   )   ;   
            
//把当前屏幕拷贝到位图中   
            g1.ReleaseHdc   (   dc3   )   ;   
            
//释放屏幕句柄   
            g2.ReleaseHdc   (   dc2   )   ;   
            
//释放位图句柄   
            MyImage.Save   (   "c:/MyJpeg.jpg"   ,   ImageFormat.Jpeg   )   ;   
            MessageBox.Show   (   
"已经把当前屏幕保存到C:/MyJpeg.jpg文件中!"   )   ;   
            
this.Show();   
        }
   
    }
   
}
  
   
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值