• Log in or sign up for an account here: https://www.sythe.org/login

Screen Recorder in .NET 3.0

Status
Not open for further replies.

Flaming Idiots

Active Member

Visual Basic Programmers
Joined
Dec 22, 2005
Sythe Gold
0
Messages
235
Age
36
Location
Alberta Canada
Two Factor Authentication User
Requirements:
  • .NET 3.0 installed on the computer using this.
  • WPF Extensions for VS 2005
  • Visual Studio 2005. Not VB Express edition.
What you need to do:
  1. Create a new "Windows Application (WPF)"
    View attachment 783
  2. Add a reference to System.Drawing.dll, and System.Windows.Forms.dll
  3. Add the following code:
Code:
Public Class ScreenRecorder

    Private Shared tempDir As String = My.Computer.FileSystem.SpecialDirectories.Temp & "\snapshot\"
    Private Shared snap As New System.Threading.Thread(AddressOf Snapshot)
    Private Shared _Bounds As System.Drawing.Rectangle = System.Windows.Forms.Screen.PrimaryScreen.Bounds
    Public Shared Property Bounds() As System.Drawing.Rectangle
        Get
            Return _Bounds
        End Get
        Set(ByVal value As System.Drawing.Rectangle)
            _Bounds = value
        End Set
    End Property
    Private Shared Sub Snapshot()
        If Not My.Computer.FileSystem.DirectoryExists(tempDir) Then _
            My.Computer.FileSystem.CreateDirectory(tempDir)
        Dim Co As Integer = 0
        Do
            Co += 1
            System.Threading.Thread.Sleep(50)
            Dim X As New System.Drawing.Bitmap(_Bounds.Width, _Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
            Using G = System.Drawing.Graphics.FromImage(X)
                G.CopyFromScreen(_Bounds.Location, New System.Drawing.Point(), _Bounds.Size)
                Dim CurBounds As New System.Drawing.Rectangle(System.Windows.Forms.Cursor.Position - Bounds.Location, System.Windows.Forms.Cursor.Current.Size)
                Forms.Cursors.Default.Draw(G, CurBounds)
            End Using
            Dim FS As New IO.FileStream(tempDir & FormatString(Co.ToString, 5, "0"c) & ".png", IO.FileMode.OpenOrCreate)
            X.Save(FS, System.Drawing.Imaging.ImageFormat.Png)
            X.Dispose()
            FS.Close()
        Loop
    End Sub
    Public Shared Sub ClearRecording()
        If My.Computer.FileSystem.DirectoryExists(tempDir) Then _
        My.Computer.FileSystem.DeleteDirectory(tempDir, FileIO.DeleteDirectoryOption.DeleteAllContents)
        My.Computer.FileSystem.CreateDirectory(tempDir)
    End Sub
    Public Shared Sub Save(ByVal Output As String)
        Dim G As New Windows.Media.Imaging.GifBitmapEncoder

        Dim X As New List(Of IO.FileStream)
        For Each Fi As String In My.Computer.FileSystem.GetFiles(tempDir, FileIO.SearchOption.SearchTopLevelOnly, "*.png")
            Dim TempStream As New IO.FileStream(Fi, IO.FileMode.Open)
            Dim Frame = Imaging.BitmapFrame.Create(TempStream)
            X.Add(TempStream)
            G.Frames.Add(Frame)
        Next
        Dim FS As New IO.FileStream(Output, IO.FileMode.OpenOrCreate)
        G.Save(FS)
        FS.Close()

        For Each St As IO.FileStream In X
            St.Close()

        Next

    End Sub
    Public Shared Sub Start()
        snap = New System.Threading.Thread(AddressOf Snapshot)
        snap.Start()
    End Sub
    Public Shared Sub [Stop]()
        snap.Abort()
    End Sub
    Private Shared Function FormatString(ByVal S As String, ByVal places As Integer, ByVal character As Char) As String
        If S.Length >= places Then Return S
        For X As Integer = S.Length To places
            S = character & S
        Next
        Return S
    End Function

End Class
To use the code:
Starting:
Code:
ScreenRecorder.Start
Stopping:
Code:
ScreenRecorder.Stop
Saving:
Code:
ScreenRecorder.Save("")
Setting the recording boundries:
Code:
ScreenRecorder.Bounds = New System.Drawing.Rectangle(300, 300, 500, 300)
Erasing the recording:
Code:
ScreenRecorder.ClearRecording()
Results:
 
hey can u do a a mini tut on how to use some stuff of that because i really dont get it ic lick two times on a button but the thing to do the codding doesnt appear what do i do
 
Member of the Month Winner
Sythe's 10th Anniversary
did you put it in a class module?
 
You cant even do things visualy in .NET 3.0.

+


There are two errors:

1.Line 26 : Says something about using "as clause" or something



2.Line 48: Says something about using "as clause" or something
 
lyk omg this requires .net v3! lol i'll install it and try it out :P. you're the first one in the rs world to make a screenrecorder in vb.net if it works.
 
ray230, you need the .net 3.0 JDK.
Not the package that enables you to use .net 3.0 applications.
Also, the .net 3.0 JDK is only available for 64 bit machines.
 
um no im running 32-bit and i have .net 3 and vista is in 32-bit and 64-bit and it has .net 3(i know because i have vista 32-biT)
 
ray230, you need the .net 3.0 JDK.
Not the package that enables you to use .net 3.0 applications.
Also, the .net 3.0 JDK is only available for 64 bit machines.


What is .NET 3.0 "JDK" you speak of. And where can I get it?
 
Ray next time do not spam another thread just to make people come to this one, we don't want u to get banned ,we need all the vb 2005 coders we can get

Here is .net 3.0 donno if its the right one but everything u will need for vb 2005 is on Microsoft.com
 
wow this is some awesome code
 
Ray next time do not spam another thread just to make people come to this one, we don't want u to get banned ,we need all the vb 2005 coders we can get

Here is .net 3.0 donno if its the right one but everything u will need for vb 2005 is on Microsoft.com

I already have the .NET 3.0.
 
Variable Declaration without an 'As' clause; type of object assumed.


^^^^^

That's what it says on Frame , and G. The two letters underlined green.


Help please.


EDIT: And how do you make buttons?
 
theres a toolbox on the side "button" and make one on the form




In .NET 3.0 you cannot do that, All there is is an XML file and a form code. You cannot do anything visually in .NET 3.0



EDIT: Please answer my above reply.
 
Member of the Month Winner
Sythe's 10th Anniversary
In .NET 3.0 you cannot do that, All there is is an XML file and a form code. You cannot do anything visually in .NET 3.0

What do you mean? I can code it through the VB 2005 IDE. Visual as Visual can be.
 
Ok got it working but how do i save?

What format?
Tryed .wmv But didn't play neither .gif?

help please X Zero
 
Status
Not open for further replies.
Runescape Gamblingrunescape gambling
Back
Top