private void button3_Click(object sender, EventArgs e) { var recordFullPath = new StringBuilder(m_FolderName + @"\\SessionRecord-" + m_RecourdCount + ".wmv"); // Check if we recording or not if (m_isRecord) { RecordTimer.Stop(); screenCaptureJob.Stop(); var chooseLessonNameForm = new LessonNameForm(recordFullPath.ToString(), m_userName, m_courseId); this.Hide(); chooseLessonNameForm.ShowDialog(); this.Show(); button2.Enabled = true; button1.Enabled = true; m_isRecord = false; button3.Text = "Start Recording!"; pictureBox3.Visible = false; m_RecourdCount++; return; } else { button2.Enabled = false; button1.Enabled = false; m_isRecord = true; button3.Text = "Stop Recording!"; RecordTimer.Start(); } try { Rectangle _screenRectangle = Screen.PrimaryScreen.Bounds; screenCaptureJob.CaptureRectangle = _screenRectangle; screenCaptureJob.ShowFlashingBoundary = true; screenCaptureJob.ScreenCaptureVideoProfile.FrameRate = 20; screenCaptureJob.CaptureMouseCursor = true; screenCaptureJob.OutputScreenCaptureFileName = recordFullPath.ToString(); if (File.Exists(screenCaptureJob.OutputScreenCaptureFileName)) { File.Delete(screenCaptureJob.OutputScreenCaptureFileName); } screenCaptureJob.Start(); } catch (Exception) { } }
private void RecordTimer_Tick(object sender, EventArgs e) { Rectangle bounds = Screen.GetBounds(Point.Empty); using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height)) { using (Graphics g = Graphics.FromImage(bitmap)) { g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size); } writer.WriteVideoFrame(bitmap); } textBox1.Text = RecordTimer.ToString(); second++; if (second > 1500) { RecordTimer.Stop(); RecordTimer.Dispose(); writer.Close(); writer.Dispose(); } }