• 抓图实例


                //调用动态链接库gdi32.dll
    		[ 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 // 光栅的操作值
    			) ;
    
    		//调用动态链接库gdi32.dll
    		[ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]
    		private static extern IntPtr CreateDC (
    			string lpszDriver , // 驱动名称
    			string lpszDevice , // 设备名称
    			string lpszOutput , // 无用,可以设定位"NULL"
    			IntPtr lpInitData // 任意的打印机数据
    			) ;
    

     调用方法:

          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 , 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 , dc3 , 0 , 0 , 13369376 ) ;
                //把当前屏幕拷贝到位图中
                g1.ReleaseHdc ( dc3 ) ;
                //释放屏幕句柄
                g2.ReleaseHdc ( dc2 ) ;
                //释放位图句柄
                if (saveFileDialog1.ShowDialog () == DialogResult.OK )
                {
                    MyImage.Save ( saveFileDialog1.FileName, ImageFormat.Bmp ) ;
                }

  • 相关阅读:
    上传视频到七牛云django端实现
    课程全文检索接口
    搜索引擎工作原理
    创建订单并生成支付链接接口
    支付宝支付流程
    通过课程查询商品信息
    如何使用 RESTClient 调试微信支付接口
    关于HTML使用ComDlg ActiveX 无法弹出相应对话框的问题1
    Android自定义View的实现方法,带你一步步深入了解View(四)
    Android视图状态及重绘流程分析,带你一步步深入了解View(三)
  • 原文地址:https://www.cnblogs.com/ziranquliu/p/4753223.html
Copyright © 2020-2023  润新知