Пример #1
0
        private bool Keysym(bool pressed, Keys key, Keys extendedKey)
        {
            if (!pressed && pressedKeys.Count == 0) // we received key-up, but not key-down - ignore
            {
                return(true);
            }

            if (KeyHandler.handleExtras <Keys>(pressed, pressedKeys, KeyHandler.ExtraKeys, extendedKey, KeyHandler.ModifierKeys, ref modifierKeyPressedAlone))
            {
                this.Focus();
                return(true);
            }

            // on keyup, try to remove extended keys (i.e. LControlKey, LControlKey, RShiftKey, LShiftKey, RMenu, LMenu)
            // we need to do this here, because we cannot otherwise distinguish between Left and Right modifier keys on KeyUp
            if (!pressed)
            {
                List <Keys> extendedKeys = ConsoleKeyHandler.GetExtendedKeys(key);
                foreach (var k in extendedKeys)
                {
                    pressedKeys.Remove(k);
                }
            }

            if (key == Keys.Tab || (key == (Keys.Tab | Keys.Shift)))
            {
                return(false);
            }

            return(false);
        }
Пример #2
0
        internal XSVNCScreen(VM source, EventHandler resizeHandler, VNCTabView parent, string elevatedUsername, string elevatedPassword)
            : base()
        {
            this.ResizeHandler    = resizeHandler;
            this.parentVNCTabView = parent;
            this.Source           = source;
            this.KeyHandler       = parentVNCTabView.KeyHandler;
            ElevatedUsername      = elevatedUsername;
            ElevatedPassword      = elevatedPassword;

#pragma warning disable 0219
            IntPtr _ = Handle;
#pragma warning restore 0219

            initSubControl();

            //We're going to try and catch when the IP address changes for the VM, and re-scan for ports.
            if (source == null)
            {
                return;
            }
            Properties.Settings.Default.PropertyChanged += Default_PropertyChanged;
            VM_guest_metrics guestMetrics = Source.Connection.Resolve <VM_guest_metrics>(Source.guest_metrics);
            if (guestMetrics == null)
            {
                return;
            }

            cachedNetworks = guestMetrics.networks;

            guestMetrics.PropertyChanged += new PropertyChangedEventHandler(guestMetrics_PropertyChanged);
        }
Пример #3
0
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            const int WM_KEYDOWN    = 0x100;
            const int WM_SYSKEYDOWN = 0x104;

            bool down = ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN));

            Keys key = keyData;

            if ((key & Keys.Control) == Keys.Control)
            {
                key = key & ~Keys.Control;
            }

            if ((key & Keys.Alt) == Keys.Alt)
            {
                key = key & ~Keys.Alt;
            }

            if ((key & Keys.Shift) == Keys.Shift)
            {
                key = key & ~Keys.Shift;
            }

            // use TranslateKeyMessage to identify if Left or Right modifier keys have been pressed/released
            Keys extKey = ConsoleKeyHandler.TranslateKeyMessage(msg);

            return(Keysym(down, key, extKey));
        }