21

Is there a way to record the screen, either desktop or window, using .NET technologies.

My goal is something free. I like the idea of small, low cpu usage, and simple, but would consider other options if they created a better final product.

In a nutshell, I know how to take a screenshot in C#, but how would I record the screen, or area of the screen, as a video?

Thanks a lot for your ideas and time!

Chris Craft
  • 5,155
  • 6
  • 42
  • 63

5 Answers5

19

There is no need for a third party DLL. This simple method captures the current screen image into a .NET Bitmap object.

    private Image CaptureScreen()
    {
        Rectangle screenSize = Screen.PrimaryScreen.Bounds;
        Bitmap target = new Bitmap(screenSize.Width,screenSize.Height);
        using(Graphics g = Graphics.FromImage(target))
        {
            g.CopyFromScreen(0,0,0,0,new Size(screenSize.Width,screenSize.Height));
        }
        return target;
    }

I am sure you can figure out how to capture a smaller portion of the screen, if that is needed :-).

driis
  • 151,614
  • 43
  • 262
  • 332
4

You can use Windows media Encoder SDK to build a c# application to record the screen. There are in-built options to record the entire desktop, a particular window or a portion of the screen.

Ivaylo Slavov
  • 8,179
  • 10
  • 57
  • 103
2

There is a dll out there that can do it. Don't remember the name of it but it's used by Jing. A friend of mine implemented a screen recorder in just a few minutes by using that dll, just for testing. Check out Jing and you'll probably find the dll they use.

PEZ
  • 15,930
  • 6
  • 39
  • 63
  • I am trying to check out the jing project. I was given the impression that jing has a limit on the duration of recording that you can do. Maybe that limit is built right into the dll you are talking about. Also, it might not be under gpl/lgpl so it may not be "free" strictly speaking. – Kinjal Dixit Dec 29 '08 at 14:26
  • In the jing license agreement: Separation of components - [...] Its component parts may not be separated for use [...]. My advice: be safe. try searching google for: c# screen capture – Kinjal Dixit Dec 29 '08 at 14:31
  • 1
    Just making sure everyone understands the goal is to record video of the screen, and not a simple bitmap screen capture. – Chris Craft Dec 29 '08 at 14:40
  • I have no clue about the licensing deal for that dll. It's probably not open source or even free. But it does record video of the screen. – PEZ Dec 29 '08 at 21:21
  • I used Jing and works fantastic. but it only works on .net 4 or 3. I want it for .net 2. – Matin Lotfaliee Aug 18 '14 at 12:17
0

You can use Media Encoder SDK but it is not supported on Windows 7.

Brent Worden
  • 9,586
  • 7
  • 50
  • 50
-1

You may try this opensource utility: ScreenRecord (http://screenrecord.codeplex.com/) it's based on AForge.NET

Fuel
  • 1
  • 2
  • 2
    Link only answers should be posted as comments. In anycase if some day the link changes, your answer will become invalid. At least mention name of the utility in the answer so that it could be searched even if the link goes down. – NSNoob Nov 26 '15 at 06:45