希望你有了代码后能给我一份,[email protected],会十分感谢。

解决方案 »

  1.   

    this.Focus();
    SendKeys.Send("%{PRTSC}");
    IDataObject ido=Clipboard.GetDataObject();
    if(ido!=null)
    {
    Image img=(Image)ido.GetData(DataFormats.Bitmap);
    img.Save(@"f:\1.bmp",System.Drawing.Imaging.ImageFormat.Bmp);
    }
      

  2.   

    this.Focus();
    SendKeys.Send("%{PRTSC}");
    IDataObject ido=Clipboard.GetDataObject();
    try
    {
    Image img=(Image)ido.GetData(DataFormats.Bitmap);
    img.Save(@"f:\1.bmp",System.Drawing.Imaging.ImageFormat.Bmp);
    }
    catch(System.Exception e1)
    {
    MessageBox.Show("剪贴板无数据!");
    }
      

  3.   

    有一个网友的一段代码:参照一个拷贝屏幕的代码,加入鼠标的拷贝,放置与一个DLL文件内
    public Stream GetImageWithCursor()
    {
       //创建一个以当前屏幕为模板的图象
       IntPtr dcScreen = CreateDC("DISPLAY",null,null,IntPtr.Zero);
       Graphics g1 = Graphics.FromHdc(dcScreen);
       //创建以屏幕大小为标准的位图 
       Rectangle rect = new Rectangle();
       rect = Screen.PrimaryScreen.Bounds;
       Image MyImage = new Bitmap ( rect.Width , rect.Height , 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 , dc1 , 0 , 0 , 
                                                              13369376 ) ;
       //释放掉屏幕的DC
       g1.ReleaseHdc ( dc1 ) ;
       //释放掉Bitmap的DC 
       g2.ReleaseHdc ( dc2 ) ;
       //绘制鼠标
       Cursor cur = new Cursor(GetCursor());<----------调用Win32函数获取鼠标
       Rectangle rectCursor = new Rectangle
                               (Cursor.Position.X,Cursor.Position.Y,
                                        cur.Size.Width,cur.Size.Height);
       cur.Draw(g2,rectCursor); // <----- 将鼠标图象贴入拷屏图象中
       //
       Stream s=new System.IO.MemoryStream();
       //以JPG文件格式来保存
       MyImage.Save(s,ImageFormat.Jpeg);
       MyImage.Dispose();
       return s;
    }
      

  4.   

    用我的程序可以实现抓屏幕功能。要抓全屏幕用下面的语句。
    SendKeys.Send("{PRTSC}");大部分情况下都可以实现抓屏幕,
    实在不行,
    用 hbxtlhx(下着春雨的天) 提供的API函数也可以实现。
      

  5.   

    先定义一个object,你把整个窗体作为一个 object 保存起来,我没试过,你试试看啊,行的话告诉我