远程桌面控制

  • 期末的一个课程设计

一个控制端,一个被控制端。 用同步Sock Tcp连接

控制端:

  1. 被控制端截屏传送图片控制端
  2. 控制端最大化显示图片(去掉边框)
  3. 记录控制端图片的坐标,将坐标传送被控制端

被控制端:

  1. 截屏整个屏幕发送控制端
  2. 接受控制端传送过来的坐标。
  3. 用 mouse_event()API 作出点击的操作

 

被控制端主要编码:

截屏:

public void CurScreen()
{          
    Rectangle rect = new Rectangle();

    //创建一个屏幕一样大的Rectangle
    rect = Screen.GetBounds(this);

    //Windows桌面的Graphics对象
    IntPtr ponter = GetDesktopWindow();
    g1 = Graphics.FromHwndInternal(ponter);

    //创建Iamge对象屏幕大小和分辨率
    Image image = new Bitmap(rect.Width, rect.Height,g1);
    Graphics g2 = Graphics.FromImage(image);

    //截屏,将dc1 复制到 dc2
    IntPtr dc2 = g2.GetHdc();
    IntPtr dc1 = g1.GetHdc();

    BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, CopyPixelOperation.SourceCopy);

    //释放掉Bitmap的DC 
    g1.ReleaseHdc(dc1);
    g2.ReleaseHdc(dc2);
}

 

posted @ 2011-09-12 10:50  WilsonPan  阅读(260)  评论(0编辑  收藏  举报