示例#1
0
        public override bool Equals(object obj)
        {
            if (!(obj is KeyPressState))
            {
                return(false);
            }

            KeyPressState mys = (KeyPressState)obj;

            // This order is an attempt to try to fail as fast as possible.
            if (this.Key != mys.Key)
            {
                return(false);
            }
            if (this.IsCtrl != mys.IsCtrl)
            {
                return(false);
            }
            if (this.IsShift != mys.IsShift)
            {
                return(false);
            }
            if (this.IsAlt != mys.IsAlt)
            {
                return(false);
            }

            return(IsWin == mys.IsWin);
        }
        public TrayBasedContext(Icon appIcon, KeyPressState kps, IConfigProvider optionProvider)
        {
            this.formLaunchShortcut = kps;
            this.optionProvider     = optionProvider;
            this.data = optionProvider.Load();
            this.EnsureRequiredOptions(data, optionProvider);
            launcher     = new UrlLauncher();
            controlState = new Dictionary <Keys, bool>();

            foreach (var k in GlobalKeyboardHook.ControlKeys)
            {
                controlState.Add(k, false);
            }

            var launch  = new MenuItem("Launch", Launch);
            var options = new MenuItem("Options", Options);
            var exit    = new MenuItem("Exit", Exit);

            MenuItem[] main = { launch, exit };

            // Initialize Tray Icon
            trayIcon = new NotifyIcon()
            {
                Icon        = appIcon,
                ContextMenu = new ContextMenu(main),
                Visible     = true
            };
        }
 private void VerifyFormState(KeyPressState kps, bool isDown)
 {
     if (isDown && this.ShouldShowForm(kps))
     {
         Launch(this, null);
     }
 }
        public void HandleKey(object sender, GlobalKeyboardHookEventArgs args)
        {
            var data  = args.KeyboardData;
            var state = args.KeyboardState;

            bool isSys  = ((state == KeyboardState.SysKeyDown) || (state == KeyboardState.SysKeyUp));
            bool isDown = ((state == KeyboardState.KeyDown) || (state == KeyboardState.SysKeyDown));

            controlState[data.Key] = isDown;

            var kps = KeyPressState.Create(controlState, data.Key);

            VerifyFormState(kps, isDown);
        }
 private bool ShouldShowForm(KeyPressState kps)
 {
     return(kps.Equals(this.formLaunchShortcut));
 }