Beispiel #1
0
        private async void KeyPressed(object sender, KeyPressedEventArgs e)
        {
            if (!Enabled)
            {
                return;
            }

            try
            {
                uiContext = SynchronizationContext.Current;

                if (e.Key == Keys.PrintScreen)
                {
                    Screenshot screenshot = null;
                    switch (e.Modifier)
                    {
                    case ModifierKeys.None:
                        screenshot = Screenshot.FromDesktop();
                        break;

                    case ModifierKeys.Alt:
                        screenshot = Screenshot.FromActiveWindow();
                        break;

                    case ModifierKeys.Control:
                        screenshot = Screenshot.FromRegion();
                        break;

                    case ModifierKeys.Control | ModifierKeys.Alt | ModifierKeys.Shift:
                        UndoUpload();
                        return;
                    }

                    if (screenshot != null)
                    {
                        await UploadScreenshot(screenshot);
                    }
                }
                else if (e.Key == Keys.PageUp && e.Modifier == ModifierKeys.Control)
                {
                    await UploadClipboard();
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                System.Media.SystemSounds.Exclamation.Play();
                Program.Tray.ShowError(SR.GenericError,
                                       SR.GenericErrorMessage.With(ex.Message));
            }
        }