Poprzednio blogowałem o how remote screen sharing software works here, nie jest to specyficzne dla C#, ale daje dobre fundamentalne zrozumienie tematu. W tym artykule znajduje się również specyfikacja zdalnego bufora ramki, którą również prawdopodobnie będziesz chciał przeczytać.
Zasadniczo będziesz chciał robić zrzuty ekranu i możesz przesłać te zrzuty ekranu i wyświetlić je po drugiej stronie. Możesz zachować ostatni zrzut ekranu i porównać zrzut ekranu w blokach, aby zobaczyć, które bloki zrzutu ekranu musisz wysłać. Przed wysłaniem danych zazwyczaj wykonuje się kompresję.
Aby mieć pilota, można śledzić ruch myszy i przesyłać go, a następnie ustawić pozycję wskaźnika na drugim końcu. Również ditto o naciśnięciach klawiszy.
Jeśli chodzi o kompresję w języku C#, można po prostu użyć JpegBitmapEncoder, aby tworzyć zrzuty ekranu z kompresją Jpeg o pożądanej jakości.
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 40;
Aby porównać bloki pliku, który chyba najlepiej utworzyć skrót na starym bloku i nowy, a następnie sprawdzić, czy są one takie same. Możesz użyć dowolnego hashing algorithm, który chcesz do tego.
Nie to, co nazwałbym "prostym". –
tak możesz zadzwonić :) –