Private Sub GetImageDesktop(monitor As Integer) Do While isstream Dim DeskImg As Image = TakeImage(Screen.AllScreens(monitor).Bounds.X, Screen.AllScreens(monitor).Bounds.Y, Screen.AllScreens(monitor).Bounds.Width, Screen.AllScreens(monitor).Bounds.Height) Dim ms = New MemoryStream() DeskImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) Dim compressor As New IO.Compression.GZipStream(ms, IO.Compression.CompressionMode.Compress, True) compressor.Write(ms.ToArray, 0, ms.Position) ms.Flush() ms.Close() SendPacketData(CByte(pHeaders.imagestart), ms.ToArray()) Loop End Sub Private Function TakeImage() Return TakeImage(0, 0, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height) End Function Private Function TakeImage(ByVal X As Integer, ByVal Y As Integer, ByVal Width As Integer, ByVal Height As Integer) Dim Img As New Bitmap(Width, Height) Dim g As Graphics = Graphics.FromImage(Img) g.CopyFromScreen(X, Y, 0, 0, Img.Size) Cursor.Draw(g, New Rectangle(Cursor.Position, Cursor.Size)) g.Dispose() Return Img End Function