Как получить экран панели с пульта в C # - PullRequest
2 голосов
/ 26 сентября 2019

Я создал приложение для удаленного рабочего стола.Но сейчас я хочу создать приложение удаленного Doolder.Но у него есть проблема.Теперь я не могу решить эту проблему.Я не могу получить указанные границы панели.Это показывает часть размера экрана.Я хочу получить содержимое панели.

Вот код:

namespace client
{
    public partial class Form1 : Form
    {
        private readonly TcpClient client = new TcpClient();
        private NetworkStream mainStream;
        private int portNumber;

        private Image GrabDesktop()
        {
           // Rectangle bounds = Screen.PrimaryScreen.Bounds;
            Rectangle bounds = panel1.Bounds;

            Bitmap screenshot = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);
            Graphics graphics = Graphics.FromImage(screenshot);
            graphics.CopyFromScreen(bounds.X,bounds.Y,0,0,bounds.Size, CopyPixelOperation.SourceCopy);

            return screenshot;
        }

        private void SendDesktopImage()
        {

            BinaryFormatter binFormatter = new BinaryFormatter();
            mainStream = client.GetStream();
            binFormatter.Serialize(mainStream, GrabDesktop());

        }

        public Form1()
        {
            InitializeComponent();
        }
    }
}

1 Ответ

0 голосов
/ 26 сентября 2019

Использование Control.DrawToBitmap

var screenshot = new Bitmap(panel1.Width, panel1.Height);
panel1.DrawToBitmap(screenshot, new Rectangle(0, 0, panel1.Width, panel1.Height));
...