Remote Desktop - Hilfstellung?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Remote Desktop - Hilfstellung?

    Hallo liebes Forum,

    ich wollte es gerne versuchen zu Realisieren eine Remote Desktop Verbindung zu Stande zu bekommen.

    Vorgestellt hatte ich es mir so (vll gibt es da ja eine klasse / ansonsten selber schreiben!):
    1 - IP:PORT angeben
    2 - Conntecten
    3 - Server Version abfragen
    4 - Login Daten angeben
    5 - Einloggen

    Ich hoffe man versteht mich.

    Kann ich das via TCP realisieren? wenn ja, wie muss ich vorgehen? :(
    remote desktop = pc fernsteuern oder?

    clientProgramm (der zu steuernde PC):
    verbindet sich mit einem server sobald einer verfügbar ist
    -erstellt Screenshot
    -speichert mausposition
    => sendet beides an den server
    => empfängt daten vom server (mausbewegungen, tastendruckbefehle) und führt diese aus

    ServerProgramm (der PC, der steuert):
    lässt eine verbindung mit dem clienten zu
    -empfängt screenshots + mausposition und stellt diese dar
    -über eine benutzeroberfläche kann man die maus verschieben lassen sowie tasten und mausdrücke "befehlen". die daten werden an den client gesendet, dieser führt sie aus.


    verwende am besten die [Beta] EasyTCPLib 1.0.0.2
    einfach deine klasse mit den daten serialisieren und versenden (sofern das sich nicht über den stream anders realisieren lässt)
    der rest (loginsystem, ip-eingabe, mausklick simulieren, tastendrücke simulieren, maus bewegen,..) findest du denke ich raus^^

    FreakJNS schrieb:

    verbindet sich mit einem server sobald einer verfügbar ist
    -erstellt Screenshot
    -speichert mausposition
    => sendet beides an den server
    => empfängt daten vom server (mausbewegungen, tastendruckbefehle) und führt diese aus

    ServerProgramm (der PC, der steuert):
    lässt eine verbindung mit dem clienten zu
    -empfängt screenshots + mausposition und stellt diese dar
    -über eine benutzeroberfläche kann man die maus verschieben lassen sowie tasten und mausdrücke "befehlen". die daten werden an den client gesendet, dieser führt sie aus.


    Dauert viel zu lange.


    Ich hab mal sowas realisiert vor ca. 2 Jahren , werde Dir nun beschreiben wie ich vorgegangen bin:

    >Client verbindet sich zum Server.
    >Client sendet Screenshot an den Server.
    Server speichert das Bild , Client ebenso





    In einer While True Schleife schiesst der Client nun immer neue Screenshot und vergleicht die Pixel parallel mit dem vorigen, gespeicherten Bild.
    Dann rechnest du ( wenn du es schon kannst , kenne deine Kenntnisse nicht ) aus , wieviel Prozent des Bildes sich geändert hat.

    Wenn sich mehr als 40% des Bildes geändert hat , überträgst du das Bild komplett neu , ansonsten wird folgendes gemacht:

    Die Pixel die nun zum vorbild anders sind , werden an den Server übergeben , damit dieser die Pixel nur noch ändern muss.

    Das Muster war bei mir so:

    VB.NET-Quellcode

    1. Integer für Width - (Position X)
    2. Integer für Height - (Position Y)
    3. 1 Byte für R
    4. 1 byte für G
    5. 1 Byte Für B


    RGB bedeutet Red Green Blue , aus den Farbwerten (jeweils 0 - 255) bestehen normale Bitmaps(ohne Alphachannel).

    Server empfängt nun das Muster:

    VB.NET-Quellcode

    1. Integer für Width - Position X
    2. Integer für Height - Position Y
    3. 1 Byte für R
    4. 1 byte für G
    5. 1 Byte Für B


    Habe dann eine FastPixel klasse benutzt , daher die normale Bitmap.SetPixel klasse einfach zu lange braucht.
    Der FastPixelklasse übergibst du nun die Daten:

    VB.NET-Quellcode

    1. Position(X,Y)
    2. Pixelfarbe(R,G,B)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „AsdAsd1337“ ()

    @tommy Bitte eröffne einen neuen Thread.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum