用GDI+慢的话就用GDI//声明API(要引用System.Runtime.InteropService
[DllImport("gdi32.dll")]
//获得屏幕
static public extern IntPtr GetDC (int z);
[DllImport("user32.dll")]
//获得分辨率
static public extern int GetSystemMetrics(int a);
//块
[DllImport("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坐标 
            int dwRop // 光栅的操作值 
            );
        public const int ROP_SrcCopy = 0xCC0020;
//然后用
IntPtr ScreenDC= GetDC(0);
Bitmap i=(Bitmap)new Bitmap(GetSystemMetrics(0),GetSystemMetrics(1);
Graphics g=Graphics.FromImage(i);
IntPtr hdc=g.GetHdc();
SrcCopy(g,0,0,i.Width,i.Height,ScreenDC,0,0,ROP_SrcCopy;
g.ReleaseHdc();
如果还嫌慢就直接截显示驱动,好多远程监控软件就是这么做的