Laden...

C# Remote Desktop Programm

Erstellt von userid24743 vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.839 Views
U
userid24743 Themenstarter:in
4 Beiträge seit 2014
vor 9 Jahren
C# Remote Desktop Programm

Hey Leute,

da ich sonst nirgendswo Hilfe gefunden habe probier ich es mal hier 😉
Also ich habe ein Remote Desktop Programm geschrieben, welches auch soweit Funktioniert. Es arbeitet mit einem Multithreaded Server und Client. Dazu noch ein Session System um bei anderen zu zuschauen.

So mein Problem ist das die Methode mit der ich ein Screenshot mache nicht die schnellst ist und mir die Größe(also in Bytes) zu groß ist!
Deswegen wollte ich mal Fragen ob hier jemand Erfahrungen mit sowas hat bzw. mir helfen könnte 😉

Mfg Philip aka JackWhite20

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo JackWhite20,

und was ist nun deine (konkrete) Frage?

Bitte beachte: [Hinweis] Wie poste ich richtig? Punkt 5

Gruss

Coffeebean

U
userid24743 Themenstarter:in
4 Beiträge seit 2014
vor 9 Jahren

Hey,
ich hab mir das durchgelesen^^

Das hier ist mein Problem und meine Frage:
"So mein Problem ist das die Methode mit der ich ein Screenshot mache nicht die schnellst ist und mir die Größe(also in Bytes) zu groß ist!
Deswegen wollte ich mal Fragen ob hier jemand Erfahrungen mit sowas hat bzw. mir helfen könnte 😉"

Wenn man ein bisschen drüber nachdenkt sagt einem dieser Satz, dass ich meine Methode zum Screenshot erstellen nicht gut finde und mir die Größe davon nicht gefällt, da das ganze ja auch noch gesendet wird und in der Server logic verarbeitet wird^^

Im Moment sind es Etwa mehr als 200k-300k Bytes die mehr als jede Sekunde gesendet werden 😕 Und das ist echt scheisse^^

Deswegen meine Frage:
Kennt einer eine gute Methode die Screenshots erstellt diese zum Byte Array konvertiert und die das Array ziemlich kleine hält bzw. ob jemand Erfahrung hat mit Remote Desktop Sachen in c#.

16.842 Beiträge seit 2008
vor 9 Jahren

Jetzt stell Dir vor jemand liest Deinen Text, der Deine Anwendung nicht kennt.
Woher sollen wir wissen, was "Deine Methode" ist....?

U
userid24743 Themenstarter:in
4 Beiträge seit 2014
vor 9 Jahren

Meine methode ist die Standart methode wie man in c# Screenshots erstellt, also die hier^^:

        public MemoryStream GetScreen()
        {
            Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
                Cursors.Default.Draw(graphics, new Rectangle(Cursor.Position, Cursor.Current.Size));
                graphics.Dispose();
            }
            MemoryStream memoryStream = new System.IO.MemoryStream();
            bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);

            bitmap.Dispose();
            memoryStream.Flush();
            memoryStream.Position = 0;
            return memoryStream;
        }
W
955 Beiträge seit 2010
vor 9 Jahren

Hallo,

... dann übertrage doch nur die Bereich die sich verändert haben.

U
userid24743 Themenstarter:in
4 Beiträge seit 2014
vor 9 Jahren

Ja die Idee hatte ich auch schon, und z.B. TeamViewer machen es ja auch so.
Mir fehlt nur noch der richtige Lösungsansatz^^
Würde mich also um etwas Konkreteres(Code snippets, Ansätze etc..) freuen^^

16.842 Beiträge seit 2008
vor 9 Jahren

Beachte [Hinweis] Wie poste ich richtig? Punkte 4; wir machen nicht Deinen Job.
Wie man nur die geänderten Bereiche ermittelt und diese überrägt und synchronisiert bekommst Du mit entsprechend Eigeninitative raus.

W
872 Beiträge seit 2005
vor 9 Jahren

Du kannst Dir den Source-Code von Terminals anschauen und gucken, wie es die Open Source Konkurrenz so macht 😉