Ho scritto in precedenza circa how remote screen sharing software works here, non è specifico di C# ma offre una buona comprensione fondamentale sull'argomento. Inoltre, in questo articolo è collegato anche lo specifico del frame buffer remoto che probabilmente vorresti anche leggere.
In pratica si desidera acquisire schermate e trasmettere questi screenshot e visualizzarli dall'altra parte. È possibile mantenere l'ultima schermata e confrontare lo screenshot nei blocchi per vedere quali blocchi dello screenshot è necessario inviare. In genere, esegui una sorta di compressione prima di inviare i dati.
Per avere il controllo remoto è possibile tracciare il movimento del mouse e trasmetterlo e impostare la posizione del puntatore sull'altra estremità. Anche idem sulle sequenze di tasti.
Per quanto riguarda la compressione in C#, è possibile utilizzare semplicemente JpegBitmapEncoder per creare gli screenshot con compressione Jpeg con la qualità desiderata.
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 40;
Per confrontare i blocchi file che si sta probabilmente meglio per creare un hash sul vecchio blocco e quello nuovo, e quindi controllare per vedere se sono la stessa cosa. È possibile utilizzare qualsiasi hashing algorithm desiderato per questo.
fonte
2010-07-20 23:58:37
Non è quello che definirei "semplice". –
si può chiamare :) –