2010-08-09 34 views
6

Tengo el siguiente código C#, que estoy usando para capturar una captura de pantalla dentro de una sesión de escritorio remoto (RDP). Funciona bien cuando la sesión está activa, pero falla con una excepción de identificador no válida si minimizo la sesión.Captura de capturas de pantalla de un escritorio remoto minimizado

¿Hay alguna manera de hacer esto funcionar, o la pantalla se "ha ido" cuando se minimiza la sesión?

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); 
} 
+0

¿Se está ejecutando el programa en la máquina remota o en la máquina local? – siride

+0

Se está ejecutando en la máquina remota. – ngoozeff

Respuesta

4

Tiene que restaurar temporalmente la ventana, capturarla y minimizarla nuevamente. This link shows how to do it silently

+0

Eso funciona si tomo la captura de pantalla en el cliente. Preferiría algo que funcione dentro de la sesión remota, pero lo haré si no aparece nada más. – ngoozeff

Cuestiones relacionadas