2011-11-26 9 views
6

Estoy buscando un SDK, complemento o código que grabará una ventana específica (hwnd). Si es posible en C# o Java. ¿Alguien sabe si esto existe? He estado buscando en Google, pero no he encontrado nada.Pantalla registrar una sola ventana

+5

posible duplicado de [Grabar vídeo de la pantalla utilizando tecnologías .NET] (http://stackoverflow.com/questions/397754/record-video-of-screen-using-net-technologies) – Nasreddine

+0

cuestión parece similares ; pero no es un duplicado. El enlace en cuestión se refiere a la captura de pantalla en general; esta pregunta se refiere específicamente a la captura de una parte de la pantalla dada una HWND para una ventana en particular. – IDWMaster

+0

No, esto no es un duplicado. Aquí está el por qué: Esta pregunta se pregunta cómo registrar una sola ventana, ya sea que la ventana se muestre o no en el escritorio o se minimice (mencionó HWND). Por lo tanto, los métodos de captura de pantalla no serán la respuesta aquí. La respuesta debería tener algo que ver con cómo capturar la ventana dado un identificador de ventana. – thenonhacker

Respuesta

4

Instalar Microsoft Expression Encoder 4 with Service Pack 2 (SP2).

Aquí hay un programa de ejemplo para usarlo. Una muestra más completa viene con el SDK, que está incluido en la descarga.

using System; 
using System.Drawing; 
using Microsoft.Expression.Encoder.ScreenCapture; 

// Added references to: 
// Microsoft.Expression.Encoder 
// Microsoft.Expression.Encoder.Types 
// Microsoft.Expression.Encoder.Utilities 
// WindowsBase 
// System.Drawing (for Rectangle) 

namespace scrcap 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ScreenCaptureJob job = new ScreenCaptureJob(); 

      // You can capture a window by setting its coordinates here 
      job.CaptureRectangle = new Rectangle(100, 100, 200, 200); 

      // Include the mouse pointer in the captured video 
      job.CaptureMouseCursor = true; 

      // Output file; you can transcode the xesc file to something else later. 
      // Note that this silently does nothing if the file already exists. 
      job.OutputScreenCaptureFileName = @"C:\Users\arx\scrcap\capture.xesc"; 

      // Do some capture 
      job.Start(); 
      // Wait for a keypress 
      Console.ReadKey(); 
      // And stop 
      job.Stop(); 
     } 
    } 
} 
+0

@Jochen: ¿esto funcionó para ti? – arx

Cuestiones relacionadas