实现功能,抓桌面保存,问题,在XP系统下运行正常。在WIN7  下出错 “GDI+ 中发生一般性错误”。文件格式 JPG,BMP 也都试过了,一样。谢谢
代码:
 //声明一个API函数  //抓屏 
        [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
        private static extern bool BitBlt(
             IntPtr hdcDest, // 目标 DC的句柄 
             int nXDest,
           int nYDest,
        int nWidth,
           int nHeight,
           IntPtr hdcSrc,  // 源DC的句柄 
             int nXSrc,
           int nYSrc,
           System.Int32 dwRop  // 光栅的处理数值 
             );
  private void SaveScreen()
        {
            Thread.Sleep(100);
            //获得当前屏幕的大小 
            Rectangle rect = new Rectangle();
            rect = Screen.GetWorkingArea(this);
            //创建一个以当前屏幕为模板的图象 
            Graphics g1 = this.CreateGraphics();
            //创建以屏幕大小为标准的位图 
            Image MyImage = new Bitmap(rect.Width, rect.Height - 26, 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-26, dc1, 0, 0, 13369376);
            //释放掉屏幕的DC 
            g1.ReleaseHdc(dc1);
            //释放掉Bitmap的DC 
            g2.ReleaseHdc(dc2);
            //以JPG文件格式来保存 
            string savepath = picturePath + DateTime.Now.Second + ".png";
            try
            {
                MyImage.Save(savepath,System.Drawing.Imaging.ImageFormat.Png);  //出错点
            }
            catch (Exception EX)
            {
                MessageBox.Show(EX.Message);
            }
        }