Blackout Sensitive Info on Screen Video - VB.NET
Screen Capturing SDK sample in VB.NET demonstrating ‘Blackout Sensitive Info on Screen Video’
Module1.vb
Imports System.Threading
Imports System.Diagnostics
Imports BytescoutScreenCapturingLib ' import bytescout screen capturer activex object
' NOTE: if you are getting error like "invalid image" related to loading the SDK's dll then 
' try to do the following:
' 1) remove the reference to the SDK by View - Solution Explorer
' then click on References, select Bytescout... reference name and right-click it and select Remove
' 2) To re-add click on the menu: Project - Add Reference
' 3) In "Add Reference" dialog switch to "COM" tab and find Bytescout...
' 4) Select it and click "Add" 
' 5) Recompile the application 
' Note: if you need to run on both x64 and x86 then please make sure you have set "Embed Interop Types" to True for this reference
Module Module1
    Sub Main()
        ' create capturer class
        Dim capturer As New Capturer()
        ' set capturing area to the region type (to capture from given region on the screen)
        capturer.CapturingType = CaptureAreaType.catScreen
        ' output video filename
        capturer.OutputFileName = "EntireScreenCaptured.wmv" ' set output video filename to .WMV or .AVI file
        ' set width and height of output video
        capturer.OutputWidth = 640
        capturer.OutputHeight = 480
        ' uncomment to set Bytescout Lossless Video format output video compression method
        ' do not forget to set file to .avi format if you use Video Codec Name
        ' capturer.CurrentVideoCodecName = "Bytescout Lossless"            
        ' uncomment to enable recording of semitransparent or layered windows (Warning: may cause mouse cursor flickering)
        ' capturer.CaptureTransparentControls = true
        ' 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.WMVVideoBitrate = capturer.WMVVideoBitrate * 2
        ' 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);
        ' 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("Capturing entire screen for 25 seconds...")
        ' wait for 1 second (1000 msec)
        Thread.Sleep(1000)
        Console.WriteLine("Adding blackout regions after 1 sec of recording...")
        capturer.BlackoutAddArea(20, 100, 500, 80)
        capturer.BlackoutAddArea(10, 200, 550, 80)
        capturer.BlackoutAddArea(20, 400, 550, 120)
        ' wait for 15 seconds (15000 msec)
        Thread.Sleep(15000)
        Console.WriteLine("Remove blackout regions...")
        ' reset all blackouts
        capturer.BlackoutReset()
        ' wait for 9 seconds more
        Thread.Sleep(9000)
        ' stop capturing and flush AVI video file into the disk
        capturer.Stop()
        ' Release(Resources)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(capturer)
        capturer = Nothing
        Console.WriteLine("Done.")
        ' open the output video 
        Process.Start("EntireScreenCaptured.wmv")
    End Sub
End Module
Resources.Designer.vb
��' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 '   <