Capture Region Around MouseByteScout Screen Capturing SDK

Capture Region Around Mouse for ByteScout Screen Capturing SDK

AssemblyInfo.cpp:

C++
#include "stdafx.h"

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;

// 
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
// 
[assembly:AssemblyTitleAttribute("CaptureRegionAroundMouse")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("")];
[assembly:AssemblyProductAttribute("CaptureRegionAroundMouse")];
[assembly:AssemblyCopyrightAttribute("Copyright (c)  2011")];
[assembly:AssemblyTrademarkAttribute("")];
[assembly:AssemblyCultureAttribute("")];

// 
// Version information for an assembly consists of the following four values:
// 
//      Major Version
//      Minor Version
//      Build Number
//      Revision
// 
// You can specify all the value or you can default the Revision and Build Numbers
// by using the '*' as shown below:

[assembly:AssemblyVersionAttribute("1.0.*")];

[assembly:ComVisible(false)];

[assembly:CLSCompliantAttribute(true)];

[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

CaptureRegionAroundMouse.cpp:

C++
// CaptureRegionAroundMouse.cpp : main project file.

#include "stdafx.h"

using namespace System;
using namespace System::Threading;
using namespace System::Diagnostics;

using namespace BytescoutScreenCapturingLib;


int main(array<System::String ^> ^args)
{
    // Create Capturer instance
    Capturer ^capturer = gcnew Capturer();

    capturer->RegistrationName = "demo";
    capturer->RegistrationKey = "demo";

    // Set capturing type
    capturer->CapturingType = CaptureAreaType::catMouse;

    // Set capturing area width and height
    capturer->CaptureRectWidth = 640;
    capturer->CaptureRectHeight = 480;

    // Set output video width and height
    capturer->OutputWidth = 640;
    capturer->OutputHeight = 480;

        // WMV and WEBM output use WMVVideoBitrate property to control output video bitrate
           // so try to increase it by x2 or x3 times if you think the output video are you are getting is laggy
        // capturer->put_WMVVideoBitrate(capturer->WMVVideoBitrate * 2);


        // uncomment to enable recording of semitransparent or layered windows (Warning: may cause mouse cursor flickering)
        // capturer->CaptureTransparentControls = true;


    // set border style
        capturer.CaptureAreaBorderType = CaptureAreaBorderType::cabtDashed;

    // Set output file name
    capturer->OutputFileName = "Output.wmv";

    // Start capturing
    capturer->Run();

    // IMPORTANT: if you want to check for some code if need to stop the recording then make sure you are 
    // using Thread.Sleep(1) inside the checking loop, so you have the loop like
    // Do {
    // Thread.Sleep(1) 
    // }
    // While(StopButtonNotClicked);


    Console::WriteLine("Capture region around mouse for 5s...");

    // Wait for 5 seconds
    Thread::Sleep(5000);

    // Stop capturing
    capturer->Stop();

    // Release resources
    System::Runtime::InteropServices::Marshal::ReleaseComObject(capturer);
    //capturer = NULL;


    Console::WriteLine("Done.");

    // Open the capture video in default associated application
    Process::Start("Output.wmv");

    return 0;
}

stdafx.cpp:

C++
// stdafx.cpp : source file that includes just the standard includes
// CaptureRegionAroundMouse.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"