Захват снимков экрана свернутого удаленного рабочего стола

У меня есть следующий код 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);
}

person ngoozeff    schedule 09.08.2010    source источник
comment
Программа запущена на удаленном или локальном компьютере?   -  person siride    schedule 09.08.2010
comment
Он работает на удаленном компьютере.   -  person ngoozeff    schedule 09.08.2010


Ответы (1)


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

person ariel    schedule 09.08.2010
comment
Это работает, если я сделаю снимок экрана на клиенте. Я бы предпочел что-то, что работает внутри удаленного сеанса, но я соглашусь с этим, если ничего не появится. - person ngoozeff; 09.08.2010