예제 #1
0
        public Form1()
        {
            InitializeComponent();
            hkRecorder      = new HotKeyRecorder();
            hkListener      = new HotKeyListener();
            kbHook          = new ClientKeyboardHook();
            kbHook.KeyDown += hkListener.KeyDownListen;
            kbHook.KeyUp   += hkListener.KeyUpListen;

            //hkRecorder.HotKeyRecordedEvent += (HotKey hk) =>
            //{
            //    hk.HotKeyHappened += hk_HotKeyEvent;
            //    hkListener.Add(hk);
            //    label1.Text += "HotKeyRegistered: " + hk.ToString() + "\n";
            //};
            hkRecorder.HotKeyRecorded += (object sender, HotKeyRecordedArgs e) =>
            {
                e.hotKey.HotKeyHappened += hk_HotKeyEvent;
                if (hkListener.Add(e.hotKey))
                {
                    label1.Text += "HotKeyRegistered: " + e.hotKey.ToString() + "\n";
                }
                else
                {
                    label1.Text += e.hotKey.ToString() + " can't be registered\n";
                }
            };

            hkRecorder.KeyRecorded += (object sender, HotKeyRecordedArgs e) =>
            {
                label2.Text = "Recording: " + e.hotKey.ToString();
            };
        }
예제 #2
0
 /// <summary>
 /// Removes a HotKey from this item.
 /// </summary>
 /// <param name="listener">The listener to be removed.</param>
 public void RemoveHotKeyListener(HotKeyListener listener)
 {
     if (HotKeyPressed == null)
     {
         return;
     }
     EventDispatchThread.RemoveKeyListener(OnKeyPressed);
     HotKeyPressed -= listener;
 }
예제 #3
0
 /// <summary>
 /// Adds a HotKey to this item.
 /// </summary>
 /// <param name="binder">The console key to be binded.</param>
 /// <param name="listener">The listener that registers the event.</param>
 public void AddHotKeyListener(ConsoleKey binder, HotKeyListener listener)
 {
     if (HotKeyPressed != null)
     {
         return;
     }
     EventDispatchThread.AddKeyListener(OnKeyPressed);
     Binder         = binder;
     HotKeyPressed += listener;
 }
예제 #4
0
        public MainWindow()
        {
            Instance = this;

            FFmpegService.FFmpegDownloader += () =>
            {
                if (_downloader == null)
                {
                    _downloader         = new FFmpegDownloaderWindow();
                    _downloader.Closed += (sender, args) => _downloader = null;
                }

                _downloader.ShowAndFocus();
            };

            InitializeComponent();

            if (DataContext is MainViewModel)
            {
                var mainModel = ServiceProvider.Get <MainModel>();

                mainModel.Init(!App.CmdOptions.NoPersist, !App.CmdOptions.Reset, !App.CmdOptions.NoHotKeys);
                ServiceProvider.Get <HotKeyActionRegisterer>().Register();
                ServiceProvider.Get <TimerModel>().Init();

                var listener = new HotKeyListener();

                var hotKeyManager = ServiceProvider.Get <HotKeyManager>();

                listener.HotKeyReceived += id => hotKeyManager.ProcessHotKey(id);

                ServiceProvider.Get <HotKeyManager>().HotKeyPressed += service =>
                {
                    switch (service)
                    {
                    case ServiceName.OpenImageEditor:
                        new ImageEditorWindow().ShowAndFocus();
                        break;

                    case ServiceName.ShowMainWindow:
                        this.ShowAndFocus();
                        break;
                    }
                };

                Loaded += (sender, args) =>
                {
                    RepositionWindowIfOutside();

                    mainModel.ViewLoaded();
                };
            }

            if (App.CmdOptions.Tray || ServiceProvider.Get <Settings>().Tray.MinToTrayOnStartup)
            {
                Hide();
            }

            Closing += (sender, args) =>
            {
                if (!TryExit())
                {
                    args.Cancel = true;
                }
            };
        }