Exemple #1
0
 private void btn_start_Click(object sender, EventArgs e)
 {
     if (btn_start.Text == "开始")
     {
         if (m_scrRecorder == null)
         {
             if (rdbtn_hwnd.Checked && m_hWnd != IntPtr.Zero)
             {
                 m_scrRecorder = new ScreenRecorder(m_hWnd, (int)nud_sleep.Value);
             }
             else if (rdbtn_rect.Checked && m_rect != Rectangle.Empty)
             {
                 m_scrRecorder = new ScreenRecorder(m_rect, (int)nud_sleep.Value);
             }
             else
             {
                 MessageBox.Show("确保对应的录制方式 有选择数据");
                 return;
             }
         }
         m_scrRecorder.DrawCursor = chk_drawMouse.Checked;
         m_scrRecorder.Start();
         btn_start.Text     = "停止";
         rdbtn_hwnd.Enabled = rdbtn_rect.Enabled = false;
         nud_sleep.Enabled  = false;
         btn_reset.Enabled  = btn_preview.Enabled = false;
         lb_chose.Enabled   = pic_chose.Enabled = true;
     }
     else
     {
         m_scrRecorder.Stop();
         btn_start.Text    = "开始";
         btn_reset.Enabled = btn_preview.Enabled = true;
     }
 }
        public void Start_WhenDisposed_Throws()
        {
            var grabber  = new ScreenGrabber(new CaptureParameters());
            var video    = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, grabber.ScreenshotHeight, 5));
            var recorder = new ScreenRecorder(grabber, video);

            recorder.Dispose();

            Assert.Throws <ObjectDisposedException>(() => recorder.Start());
        }
Exemple #3
0
        //
        // Main procedure
        //
        static void Main(string[] args)
        {
            Console.CancelKeyPress += (sender, a) =>
            {
                _exitingEvent.Set();
                a.Cancel = true;
            };

            SetConsoleCtrlHandler(ConsoleCtrlHandler, true);

            ScreenRecorder recorder = new ScreenRecorder();

            recorder.Start();

            ScreenCaptureController.Recorder = recorder;


            // this is the web application stack
            WebApp.Start(ApplicationUrl, (builder) =>
            {
                var config = new HttpConfiguration();
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{lastKnownFrame}",
                    defaults: new { lastKnownFrame = RouteParameter.Optional }
                    );

                builder.UseWebApi(config);

                builder.MapSignalR();

                builder.UseFileServer(new FileServerOptions()
                {
                    EnableDirectoryBrowsing = false,
                    RequestPath             = new Microsoft.Owin.PathString(@"/js"),
                    FileSystem = new PhysicalFileSystem(StaticScriptsPath)
                });

                builder.UseFileServer(new FileServerOptions()
                {
                    EnableDirectoryBrowsing = true,
                    FileSystem = new PhysicalFileSystem(StaticFilesPath)
                });
            });

            // wait for the user to exit the application
            Console.Write("Press CTRL + C to exit");
            _exitingEvent.WaitOne();
            _exitEvent.Set();
        }
        public void Start_CapturesVideoUntilStopped()
        {
            var grabber = new ScreenGrabber(new CaptureParameters()
            {
                Zoom = 0.25
            });
            var video = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, grabber.ScreenshotHeight, 5));

            using (var recorder = new ScreenRecorder(grabber, video))
            {
                recorder.Start();
                Thread.Sleep(2000);
                recorder.Stop();

                TestLog.EmbedVideo("Video", recorder.Video);
            }
        }
Exemple #5
0
        /// <summary>
        /// Starts recording a screen capture video of the entire desktop.
        /// </summary>
        /// <remarks>
        /// <para>
        /// Recording a screen capture video can be very CPU and space intensive particularly
        /// when running tests on a single-core CPU.  We recommend calling
        /// <see cref="StartRecording(CaptureParameters, double)" /> with
        /// a <see cref="CaptureParameters.Zoom" /> factor of 0.25 or less and a frame rate
        /// of no more than 5 to 10 frames per second.
        /// </para>
        /// </remarks>
        /// <param name="parameters">The capture parameters.</param>
        /// <param name="framesPerSecond">The number of frames per second to capture.</param>
        /// <returns>The recorder.</returns>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
        /// <exception cref="ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        public static ScreenRecorder StartRecording(CaptureParameters parameters, double framesPerSecond)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            ScreenGrabber.ThrowIfScreenshotNotAvailable();

            ScreenGrabber grabber = new ScreenGrabber(parameters);

            try
            {
                FlashScreenVideo video = new FlashScreenVideo(new FlashScreenVideoParameters(
                                                                  grabber.ScreenshotWidth, grabber.ScreenshotHeight, framesPerSecond));

                ScreenRecorder recorder = new ScreenRecorder(grabber, video);
                try
                {
                    recorder.OverlayManager.AddOverlay(GetOverlayManager().ToOverlay());

                    recorder.Start();
                    return(recorder);
                }
                catch
                {
                    recorder.Dispose();
                    throw;
                }
            }
            catch
            {
                grabber.Dispose();
                throw;
            }
        }
Exemple #6
0
 private void cmdStart_Click(object sender, EventArgs e)
 {
     cmdStart.Enabled = false;
     cmdStop.Enabled  = true;
     sr.Start();
 }