现在的位置: 首页 > 综合 > 正文

GDI+屏幕截图程序

2013年09月10日 ⁄ 综合 ⁄ 共 983字 ⁄ 字号 评论关闭

最近在整理以前的的开发资料,发现了过去开发过程中写的不少程序还比较有意思,特此一一整理,以备后用

命名空间

using System.Drawing.Imaging;
using DCOMExtLib;
using System.Runtime.InteropServices; 

方法

[DllImport("gdi32.dll")]
  private static extern IntPtr CreateDC(
   string lpszDriver, // 驱动名称
   string lpszDevice, // 设备名称
   string lpszOutput,    IntPtr lpInitData); 

   [DllImport("gdi32.dll")]
  private static extern bool BitBlt(
    IntPtr hdcDest , //目标设备的句柄
    int nXDest ,     int nYDest ,     int nWidth ,     int nHeight ,     IntPtr hdcSrc ,     int nXSrc ,     int nYSrc , 
    System.Int32 dwRop );

画图部分

IntPtr pt=CreateDC("DISPLAY",null,null,(IntPtr) null);
   Graphics g1 = Graphics.FromHdc(pt);
   Bitmap b2 = new Bitmap (Screen.PrimaryScreen.Bounds.Width,
    Screen.PrimaryScreen.Bounds.Height,g1);
   Graphics g2 = Graphics.FromImage(b2);
   IntPtr dc1 = g1.GetHdc();
   IntPtr dc2 = g2.GetHdc();
   BitBlt(dc2,0,0,Screen.PrimaryScreen.Bounds.Width,
    Screen.PrimaryScreen.Bounds.Height,
    dc1,0,0,13369376);
   g1.ReleaseHdc(dc1);
   g2.ReleaseHdc(dc2);
   b2.Save("c://test.bmp",ImageFormat.Bmp);

抱歉!评论已关闭.