简单的C#屏幕共享应用程序

And*_*Hin 13 c# desktop screen sharing

我期待在C#中创建一个非常基本的屏幕共享应用程序.无需遥控器.我只是希望用户能够将他们的屏幕广播到网络服务器.

我该如何实现呢?(非常感谢任何指向正确方向的指针).

它不需要高FPS.足以甚至更新5s左右.您是否认为仅将屏幕截图上传5秒钟到我的网络服务器就足够了?

Bri*_*ndy 13

我之前曾在博客中介绍过远程屏幕共享软件如何在这里工作,它不是特定于C#,但它对该主题提供了一个很好的基础理解.在该文章中还链接了远程帧缓冲区规范,您可能也想要阅读它.

基本上你会想要截取屏幕截图,你可以传输这些截图并在另一边显示它们.您可以保留最后一个屏幕截图并比较块中的屏幕截图,以查看您需要发送的屏幕截图块.在发送数据之前,您通常会进行某种压缩.

要进行遥控,您可以跟踪鼠标移动并传输它,并在另一端设置指针位置.关于击键也是如此.

就C#中的压缩而言,您可以使用JpegBitmapEncoder以您想要的质量创建Jpeg压缩的屏幕截图.

JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 40; 
Run Code Online (Sandbox Code Playgroud)

要比较文件块,最好在旧块和新块上创建一个哈希,然后检查它们是否相同.您可以使用任何您想要的散列算法.