예제 #1
0
        private void captureScreen_Click(object sender, EventArgs e)
        {
            //* Test capture methods
            string timestamp = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");

            ScreenCapturer.CaptureWholeScreen(
                Path.Combine(Settings.Default.TempDirectory, "wholescreen-" + timestamp + ".jpg"));
            ScreenCapturer.CaptureCurrentWindow(
                Path.Combine(Settings.Default.TempDirectory, "currentwindow-" + timestamp + ".jpg"));
        }
예제 #2
0
 /// <summary>Capture the current (topmost) window to the given file.
 /// </summary>
 public static void CaptureCurrentWindow(string filename)
 {
     using (Bitmap bitmap = ScreenCapturer.CaptureCurrentWindow()) {
         try {
             bitmap.Save(filename, ImageFormat.Png);
         }
         catch (Exception) {
             //* Eat it
         }
     }
 }
        protected override void OnMouseUp(MouseEventArgs e)
        {
            //* Testing
            Hide();
            _mousedown = false;
            Invalidate();
            //this.Opacity = 0;
            //DateTime now = DateTime.Now;
            //string timestamp = now.ToString("yyyy-MM-dd-HH-mm-ss");
            if (_upperleft != e.Location)
            {
                int x      = _upperleft.X < _lowerright.X ? _upperleft.X : _lowerright.X;
                int y      = _upperleft.Y < _lowerright.Y ? _upperleft.Y : _lowerright.Y;
                int width  = Math.Abs(_upperleft.X - _lowerright.X);
                int height = Math.Abs(_upperleft.Y - _lowerright.Y);
                //*

                _upperleft.X  = 0;
                _upperleft.Y  = 0;
                _lowerright.X = 0;
                _lowerright.Y = 0;

                Close();

                ScreenCapturer.CaptureRegion(
                    //Path.Combine(Settings.Default.TempDirectory, "region-" + timestamp + ".jpg"),
                    Utils.GetDefaultImageName(),
                    x, y, width, height);
            }
            else
            {
                Rectangle rect = _windowRectangles.GetTopWindowRect(e.Location);

                //*

                _upperleft.X  = 0;
                _upperleft.Y  = 0;
                _lowerright.X = 0;
                _lowerright.Y = 0;

                Close();

                ScreenCapturer.CaptureRegion(
                    //Path.Combine(Settings.Default.TempDirectory, "region-" + timestamp + ".jpg"),
                    Utils.GetDefaultImageName(),
                    rect.X, rect.Y, rect.Width, rect.Height);
            }
        }
예제 #4
0
        private void keyboard_ScreenPrintPress(object sender, PrtScnCatcher.ScreenPrintPressEventArgs e)
        {
            switch (e.Kind)
            {
            case PrtScnCatcher.ScreenPrintKind.Manual:
                ShowManualSelectionForm();
                break;

            case PrtScnCatcher.ScreenPrintKind.FullAuto:
                ScreenCapturer.CaptureWholeScreen(Utils.GetDefaultImageName());
                break;

            case PrtScnCatcher.ScreenPrintKind.TopWindowAuto:
                ScreenCapturer.CaptureCurrentWindow(Utils.GetDefaultImageName());
                break;
            }
        }