Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        private bool processKey(uint scanCode, KeyMagicEngine e)
        {
            if (e == null)
            {
                return(false);
            }

            IntPtr HKLCurrent = (IntPtr)0x04090409;

            if (!e.Options.posBased)
            {
                uint dwProcessId;
                uint threadId = NativeMethods.GetWindowThreadProcessId(NativeMethods.GetForegroundWindow(), out dwProcessId);
                HKLCurrent = NativeMethods.GetKeyboardLayout(threadId);
            }

            byte[] keyboardState = GetVirtualizedKeyboardState();
            e.SetKeyStates(keyboardState);

            uint keyval   = GetKeyValue(scanCode, keyboardState, HKLCurrent);
            int  modifier = GetKeyMagicEngineModifier();

            return(e.ProcessKeyEvent((int)keyval, (int)GetVK(scanCode, HKLCurrent), modifier));
        }
 /// <summary>
 ///  
 /// </summary>
 public SoftKeyboardWithEngine(KeyMagicEngine _engine)
     : base()
 {
     Engine = _engine;
 }
Beispiel #3
0
 /// <summary>
 ///
 /// </summary>
 public SoftKeyboardWithEngine(KeyMagicEngine _engine)
     : base()
 {
     Engine = _engine;
 }
        /// <summary>
        ///  
        /// </summary>
        private bool processKey(uint scanCode, KeyMagicEngine e)
        {
            if (e == null)
            {
                return false;
            }

            IntPtr HKLCurrent = (IntPtr)0x04090409;

            if (!e.Options.posBased)
            {
                uint dwProcessId;
                uint threadId = NativeMethods.GetWindowThreadProcessId(NativeMethods.GetForegroundWindow(), out dwProcessId);
                HKLCurrent = NativeMethods.GetKeyboardLayout(threadId);
            }

            byte[] keyboardState = GetVirtualizedKeyboardState();
            e.SetKeyStates(keyboardState);

            uint keyval = GetKeyValue(scanCode, keyboardState, HKLCurrent);
            int modifier = GetKeyMagicEngineModifier();

            return e.ProcessKeyEvent((int)keyval, (int)GetVK(scanCode, HKLCurrent), modifier);
        }