Захват скриншотов минимизированного удаленного рабочего стола - PullRequest
8 голосов
/ 09 августа 2010

У меня есть следующий код C #, который я использую, чтобы сделать снимок экрана в сеансе удаленного рабочего стола (RDP).Он работает нормально, когда сеанс активен, но завершается с ошибкой недопустимого дескриптора, если я минимизирую сеанс.

Есть ли способ заставить эту работу работать, или экран по существу "пропал", когда сеанс свернут?

string filename = @"C:\Snap.png";
Size bitmapSize = new Size( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height );
using (Bitmap bitmap = new Bitmap(bitmapSize.Width, bitmapSize.Height, PixelFormat.Format24bppRgb))
using (Graphics graphics = Graphics.FromImage(bitmap))
{
    graphics.CopyFromScreen( // Exception thrown here
        new Point(0, 0), 
        new Point(0, 0), 
        bitmapSize);
    bitmap.Save(filename, ImageFormat.Png);
}

1 Ответ

4 голосов
/ 09 августа 2010

Вы должны временно восстановить окно, сделать снимок и снова свернуть его. Эта ссылка показывает, как сделать это тихо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...