BasicCommandHandlers.NewSendKeyCommandHandlerPlugin.DoSendKeys C# (CSharp) Метод

DoSendKeys() приватный Метод

private DoSendKeys ( object sender, string key ) : void
sender object
key string
Результат void
        private void DoSendKeys( object sender, string key )
        {
            KeySendingEventArgs e = new KeySendingEventArgs( key );

            if( KeySending != null ) KeySending( this, e );
            if( !e.Cancel )
            {
                switch( key )
                {
                    case "@":
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | 0, (UIntPtr)0 );
                        SendKeys.SendWait( key );
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | Keybd.KEYEVENTF.KEYUP, (UIntPtr)0 );
                        break;
                    case "#":
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | 0, (UIntPtr)0 );
                        SendKeys.SendWait( "#" );
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | Keybd.KEYEVENTF.KEYUP, (UIntPtr)0 );
                        break;
                    case "{BACKSLASH}":
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | 0, (UIntPtr)0 );
                        SendKeys.SendWait( "{\\}" );
                        Keybd.Event( VKeyCode.VK_ALTGR, (byte)VKeyCode.SC_ALTGR_FR, Keybd.KEYEVENTF.EXTENDEDKEY | Keybd.KEYEVENTF.KEYUP, (UIntPtr)0 );
                        break;
                    case "{dbquote}":
                        SendKeys.SendWait( "\"" );
                        break;
                    case "(":
                    case ")":
                    case "{":
                    case "}":
                    case "+":
                        SendKeys.SendWait( "{" + key + "}" );
                        break;
                    case "^":
                        Keybd.Event( VKeyCode.VK_CARET, (byte)0, Keybd.KEYEVENTF.KEYDOWN, UIntPtr.Zero );
                        Keybd.Event( VKeyCode.VK_CARET, (byte)0, Keybd.KEYEVENTF.KEYUP, UIntPtr.Zero );
                        SendKeys.SendWait( " " );
                        break;
                    case "%":
                        Keybd.Event( VKeyCode.VK_RSHIFT, (byte)0, Keybd.KEYEVENTF.EXTENDEDKEY, UIntPtr.Zero );
                        Keybd.Event( VKeyCode.VK_PERCENT, (byte)0, Keybd.KEYEVENTF.EXTENDEDKEY, UIntPtr.Zero );
                        Keybd.Event( VKeyCode.VK_PERCENT, (byte)0, Keybd.KEYEVENTF.EXTENDEDKEY | Keybd.KEYEVENTF.KEYUP, UIntPtr.Zero );
                        Keybd.Event( VKeyCode.VK_RSHIFT, (byte)0, Keybd.KEYEVENTF.EXTENDEDKEY | Keybd.KEYEVENTF.KEYUP, UIntPtr.Zero );
                        break;
                    case "~":
                    case "¨":
                    case "`":
                        SendKeys.SendWait( "{" + key + "}" );
                        SendKeys.SendWait( " " );
                        break;
                    default:
                        SendKeys.SendWait( key );
                        break;
                }

                if( KeySent != null ) KeySent( this, new KeySentEventArgs( key ) );
            }
        }