Her er den kode jeg bruger:
Imports Microsoft.Expression.Encoder
Imports Microsoft.Expression.Encoder.ScreenCapture
Imports Microsoft.Expression.Encoder.Devices
Imports System.Collections.ObjectModel
Imports System.IO
Public Class Form1
Dim showsettings As Boolean = False
Dim heightanimationtimer As Timer
Dim capturerec As New ScreenCaptureJob
Dim videopath As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\strandboscrrec.wmv"
Dim audiodevices As Collection(Of EncoderDevice) = EncoderDevices.FindDevices(EncoderDeviceType.Audio)
Private Function HeightAnimation(ByVal control As Control, ByVal newheight As Integer, ByVal interval As Integer) As Timer
Dim oldheight As Integer = control.Height
Dim subheight As Integer = newheight - oldheight
Dim timeinterval As Long = interval * 10000
Dim time As Long = Date.Now.Ticks
Dim timer As New Timer
timer.Interval = 1
AddHandler timer.Tick, Sub()
Dim subtime As Long = Date.Now.Ticks - time
If subtime > timeinterval Then
control.Height = newheight
timer.Stop()
Else
control.Height = oldheight + subheight / timeinterval * subtime
End If
End Sub
timer.Start()
Return timer
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
capturerec.ScreenCaptureVideoProfile.Quality = 100
capturerec.OutputScreenCaptureFileName = videopath
Rec.BackgroundImage = New Bitmap(Application.StartupPath & "\recicon.png")
Rec.BackgroundImageLayout = ImageLayout.Zoom
StopB.BackgroundImage = New Bitmap(Application.StartupPath & "\stopicon.png")
StopB.BackgroundImageLayout = ImageLayout.Zoom
CheckedListBox1.SetItemChecked(0, True)
CheckedListBox1.SetItemChecked(1, True)
End Sub
Private Sub Rec_Click(sender As Object, e As EventArgs) Handles Rec.Click
capturerec.ResetSettings()
Select Case True
Case FrameRate15.Checked
capturerec.ScreenCaptureVideoProfile.FrameRate = 15
Case FrameRate20.Checked
capturerec.ScreenCaptureVideoProfile.FrameRate = 20
Case FrameRate25.Checked
capturerec.ScreenCaptureVideoProfile.FrameRate = 25
End Select
Dim audiodevices As Collection(Of EncoderDevice) = EncoderDevices.FindDevices(EncoderDeviceType.Audio)
For Each item As String In CheckedListBox1.CheckedItems
Select Case item
Case "Mikrofon"
capturerec.AddAudioDeviceSource(audiodevices(0))
Case "Systemlyd"
capturerec.AddAudioDeviceSource(audiodevices(1))
End Select
Next
If File.Exists(videopath) Then
File.Delete(videopath)
End If
capturerec.Start()
Rec.Enabled = False
CheckedListBox1.Enabled = False
FrameRate15.Enabled = False
FrameRate20.Enabled = False
FrameRate25.Enabled = False
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If heightanimationtimer IsNot Nothing Then
heightanimationtimer.Stop()
End If
If showsettings Then
heightanimationtimer = HeightAnimation(Me, 181, 300)
showsettings = False
Button1.Text = "Vis indstillinger"
Else
heightanimationtimer = HeightAnimation(Me, 300, 300)
showsettings = True
Button1.Text = "Skjul indstillinger"
End If
End Sub
Private Sub StopB_Click(sender As Object, e As EventArgs) Handles StopB.Click
capturerec.Stop()
Process.Start(videopath)
End Sub
End Class