コード例 #1
0
        public MainWindow()
        {
            InitializeComponent();

            //Ctrl+Shift+Xで画面を表示。
            hotKey = new HotKeyHelper(this);
            hotKey.Register(ModifierKeys.Control | ModifierKeys.Shift, Key.X,
                            (a, b) => { Show(); });

            //表示された時にフォーカスを合わせる。
            Activated   += OnActivate;
            Deactivated += OnDeactivate;

            //ViewModelの設定
            DataContext = vm;

            if (Properties.Settings.Default.Timer != 0)
            {
                //一定間隔ごとに画面を表示し、今なにしてるかを聞く。
                timer          = new Timer(Properties.Settings.Default.Timer * 1000);
                timer.Elapsed += (a, b) => {
                    //別スレッドなので。
                    Dispatcher.Invoke(new Action(() =>
                    {
                        Show();
                    }));
                };

                timer.Start();
            }
        }
コード例 #2
0
ファイル: HotKeyBehavior.cs プロジェクト: uta666666/AppTray
 private void AssociatedObject_Loaded(object sender, RoutedEventArgs e)
 {
     _hotkey = new HotKeyHelper(AssociatedObject);
     _hotkey.Register(
         HotKey.Modifiers,
         HotKey.Key,
         (_, __) => {
         if (AssociatedObject.WindowState == WindowState.Normal)
         {
             //AssociatedObject.Activate();
         }
         else
         {
             AssociatedObject.WindowState = WindowState.Normal;
             AssociatedObject.Activate();
         }
     });
 }
コード例 #3
0
        /// <summary>
        /// Initializeで指定したハンドラを起動するグローバルホットキーを上書き登録する
        /// </summary>
        /// <param name="modifier"></param>
        /// <param name="key"></param>
        /// <returns>正しく登録できればTrue</returns>
        public static bool RegisterHotKey(ModifierKeys modifier, Key key)
        {
            if (modifier == ModifierKeys.None)
            {
                return(false);
            }
            if (_handler == null)
            {
                return(false);
            }

            _hotkey.UnregisterAll();
            _hotkey.Register(modifier, key, _handler);

            // 設定したModifierとKeyを記憶
            Properties.Settings.Default.EnumModifierKeys = (int)modifier;
            Properties.Settings.Default.EnumKey          = (int)key;
            Properties.Settings.Default.Save();

            return(true);
        }
コード例 #4
0
ファイル: HotKeyBehavior.cs プロジェクト: uta666666/AppTray
        private static void HotKeyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (_hotkey == null)
            {
                return;
            }
            var obj = d as HotKeyBehavior;

            _hotkey.UnregisterAll();
            _hotkey.Register(
                obj.HotKey.Modifiers,
                obj.HotKey.Key,
                (_, __) => {
                if (obj.AssociatedObject.WindowState == WindowState.Normal)
                {
                    //AssociatedObject.Activate();
                }
                else
                {
                    obj.AssociatedObject.WindowState = WindowState.Normal;
                    obj.AssociatedObject.Activate();
                }
            });
        }