C# · 12月 30, 2021

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

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

我该如何实现? (任何指针在正确的方向将不胜感激).

它不需要高FPS.足够甚至可以更新5年左右.你认为只需将5秒钟的截图上传到我的网络服务器就足够了吗?

解决方法 我以前曾经写过关于 how remote screen sharing software works here的内容,它不是C#的具体内容,但它对这个主题有很好的基础性了解.该文章中还链接了您可能想要阅读的远程帧缓冲区规范.

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

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

就C#压缩而言,您只需使用JpegBitmapEncoder,就可以使用Jpeg压缩创建您所需的质量的截图.

JpegBitmapEncoder encoder = new JpegBitmapEncoder();encoder.QualityLevel = 40;

为了比较文件块,你可能最好在旧的块和新块上创建哈希,然后检查它们是否相同.您可以使用任何hashing algorithm您想要的.