Jochen
Jochen

Reputation: 1853

Screen record a single window

I'm looking for a SDK, plugin or code that will videorecord a specific window (hwnd). If possible in C# or Java. Does anyone know if this exists? I've been googling, but haven't come across anything.

Upvotes: 7

Views: 3620

Answers (1)

arx
arx

Reputation: 16896

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

Here's a sample program to use it. A fuller sample comes with the SDK, which is included in the download.

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();
        }
    }
}

Upvotes: 5

Related Questions