コード例 #1
0
        private string HandleKey(ConsoleKey key, string numToBuy)
        {
            string nums = "0123456798";

            if (key.ToString().Length == 2 && key.ToString() [0] == 'D')
            {
                if (nums.Contains(key.ToString() [1]) && numToBuy.Length < 9)
                {
                    numToBuy += key.ToString() [1];
                }
            }
            else if (key == ConsoleKey.Backspace && numToBuy.Length > 0)
            {
                numToBuy = numToBuy.Substring(0, numToBuy.Length - 1);
            }

            while (numToBuy.IndexOf("0") == 0)
            {
                numToBuy = numToBuy.Substring(1);
            }

            if (numToBuy.Replace("0", "").Length == 0)
            {
                numToBuy = "0";
            }

            return(numToBuy);
        }
コード例 #2
0
 public bool IsSameChar(ConsoleKey compareKey)
 {
     if (compareKey.ToString().StartsWith("NumPad") && Key.ToString().StartsWith("D"))
     {
         return(compareKey.ToString()[6] == (char)Key);
     }
     return(compareKey == Key);
 }
コード例 #3
0
 /// <summary>
 /// Waits for the user to enter a specific key before continuing.
 /// </summary>
 /// <param name="key">The key the user must enter to continue.</param>
 public static void WaitForKey(ConsoleKey key = ConsoleKey.Escape)
 {
     WriteLine($"Press {key.ToString()} to continue");
     for (var k = ReadKey(true); k.Key != key; k = ReadKey(true))
     {
         WriteLine($"Press {key.ToString()} to continue");
     }
 }
コード例 #4
0
 private string KeyToString(ConsoleKey key)
 {
     if (key >= ConsoleKey.NumPad0 && key <= ConsoleKey.NumPad9)
     {
         return(key.ToString().Replace("NumPad", string.Empty));
     }
     else
     {
         return(key.ToString());
     }
 }
コード例 #5
0
        private static async Task GenericCancel(CancellationTokenSource ct, ConsoleKey key, string name)
        {
            Console.WriteLine("Press the " + key.ToString() + " key to cancel the course...");
            while (Console.ReadKey(true).Key != key)
            {
                //Console.WriteLine("Press the any key to cancel...");
            }

            Console.WriteLine("\nkey " + key.ToString() + " pressed : Cancellation start for " + name);
            ct.Cancel();
        }
コード例 #6
0
    private static char MapToCharacter(ConsoleKey key)
    {
        var keyString = key.ToString();

        return(keyString switch
        {
            { Length : 1 } => keyString[0],
コード例 #7
0
ファイル: Program.cs プロジェクト: daxtron2/NATO-Phonetic-TTS
        static void PlayLetter(ConsoleKey key)
        {
            var         soundFile = Properties.Resources.ResourceManager.GetStream(key.ToString().ToLower());
            SoundPlayer sp        = new SoundPlayer(soundFile);

            sp.Play();
        }
コード例 #8
0
ファイル: GameView.cs プロジェクト: simonassank/ktu-oop
        public string GetChangingPart()
        {
            switch (_keyQueued)
            {
            case ConsoleKey.LeftArrow:
            case ConsoleKey.RightArrow:
                _movePlayerCommand.Execute(_keyQueued.ToString());
                break;

            case ConsoleKey.Spacebar:
                _shootCommand.Execute();
                break;

            case ConsoleKey.E:
                HandleRequest("e");
                break;

            case ConsoleKey.P:
                HandleRequest("p");
                break;
            }
            _keyQueued = ConsoleKey.F24;

            _refreshGameCommand.Execute();
            return(Game.Instance.ToString());
        }
コード例 #9
0
        /// <summary>
        /// Returns false if maximum input attempts is reached.
        /// </summary>
        /// <param name="answer"></param>
        /// <param name="prompt"></param>
        /// <param name="answerKey1"></param>
        /// <param name="answerKey2"></param>
        /// <param name="enterAsDefaultAnswerKey"></param>
        /// <param name="errorMessage"></param>
        /// <param name="maxInputAttempts"></param>
        protected void AskFor(out bool answer, string prompt, ConsoleKey answerKey1, ConsoleKey answerKey2, bool enterAsDefaultAnswerKey = true, string errorMessage = "", int maxInputAttempts = defaultMaxInputAttempts)
        {
            int counter = 0;

            while (counter < maxInputAttempts)
            {
                Console.Write($"{prompt} ({(enterAsDefaultAnswerKey ? answerKey1.ToString() : answerKey1.ToString().ToLower())}/{answerKey2.ToString().ToLower()}): ");
                ConsoleKey inputKey = Console.ReadKey().Key;
                Console.WriteLine();
                if (enterAsDefaultAnswerKey)
                {
                    if (inputKey == ConsoleKey.Enter)
                    {
                        answer = true;
                        return;
                    }
                }
                if (inputKey == answerKey1)
                {
                    answer = true;
                    return;
                }
                if (inputKey == answerKey2)
                {
                    answer = false;
                    return;
                }
                counter++;
            }

            answer = false;
            PrintMaxInputAttemptsMessage(maxInputAttempts, errorMessage);
        }
コード例 #10
0
        public ConsoleAddQuestRequestBuilder WithDatas()
        {
            Console.WriteLine("Datas: ");
            ConsoleKey finishKey = ConsoleKey.Escape;
            ConsoleKey inputKey;
            string     key;
            string     value;

            Request.Data = new Dictionary <string, string>();
            do
            {
                Console.WriteLine("Type " + finishKey.ToString() + " to finish data dict");
                inputKey = Console.ReadKey().Key;
                if (inputKey == finishKey)
                {
                    break;
                }
                Console.Write("Key: ");
                key = Console.ReadLine();
                Console.Write("Value: ");
                value = Console.ReadLine();

                if (!Request.Data.ContainsKey(key))
                {
                    Request.Data.Add(key, value);
                }
                else
                {
                    Console.WriteLine("Data was not inserted because " + key + " was already existing");
                }
            } while (true);
            return(this);
        }
コード例 #11
0
        //Method for verify inputs on registering
        //Returns bool to RegisterMethod for error handling
        public static bool VerifyInput(string fieldData, string fieldLabel)
        {
            Console.Write("\n\tPlease verify your " + fieldLabel + " (");
            UIHelpers.WarningColor();
            Console.Write(fieldData);
            UIHelpers.ResetColor();
            Console.Write(") is correct? (Y\\N) ");
            ConsoleKey responseToVerification = Console.ReadKey().Key;

            Console.Write("\x1B[1D" + "\x1B[1P" + responseToVerification.ToString().ToUpper());
            //

            if (responseToVerification == ConsoleKey.Y)
            {
                UIHelpers.Clear();
                UIHelpers.WarningColor();
                Console.WriteLine("\tAccount Setup");
                UIHelpers.ResetColor();
            }
            else
            {
                return(false);
            }
            return(true);
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: wdpronovost/AltBanc
        public static Account LoginOrRegister(Account currentUser)
        {
            UIHelpers.Clear();
            Console.WriteLine("\tWhat would you like to do?\n\n\t\t(L) - Login\n\t\t(R) - Register ");
            Console.Write("\n\tSelection: ");
            ConsoleKey loginOrRegisterResponse = Console.ReadKey().Key;

            Console.Write("\x1B[1D" + "\x1B[1P" + loginOrRegisterResponse.ToString().ToUpper());

            if (loginOrRegisterResponse == ConsoleKey.L)
            {
                UIHelpers.Clear();
                currentUser = LoginController.LoginEmail(loginAttempts);
            }
            else if (loginOrRegisterResponse == ConsoleKey.R)
            {
                UIHelpers.Clear();
                UIHelpers.WarningColor();
                Console.WriteLine("\tLet's get an account setup for you!");
                UIHelpers.ResetColor();
                currentUser = RegisterController.Register(RegistrationEnum.RegisterEmail);
            }
            else
            {
                UIHelpers.DangerColor();
                Console.WriteLine("\n\tThat is an invalid entry. Please select 'L' to Login or 'R' to Register.\n");
                System.Threading.Thread.Sleep(1000);
                UIHelpers.ResetColor();
                currentUser = null;
                LoginOrRegister(currentUser);
            }

            return(currentUser);
        }
コード例 #13
0
        private void Input()
        {
            while (finished == false)
            {
                ConsoleKey key = Console.ReadKey(true).Key;
                switch (key.ToString())
                {
                case "W":
                    movement.Move(Direction.up);
                    break;

                case "A":
                    movement.Move(Direction.left);
                    break;

                case "S":
                    movement.Move(Direction.down);
                    break;

                case "D":
                    movement.Move(Direction.right);
                    break;
                }
            }
        }
コード例 #14
0
        //Method for initial deposit to open account
        //Returns user to CreatePasswordMethod
        public static Account FinancialAccountSetup(Account userFromCreatePasswordMethod)
        {
            UIHelpers.Clear();
            UIHelpers.WarningColor();
            Console.WriteLine("\n\tAlmost finished...");
            UIHelpers.ResetColor();
            Console.WriteLine("\n\tIn order to finish openning an account, you must make an initial deposit of at least $5.00.");
            Console.Write("\n\tWhat type of account do you want to open? (S) - Savings or (C) - Checking? ");
            ConsoleKey responseToAccountType = Console.ReadKey().Key;

            Console.Write("\x1B[1D" + "\x1B[1P" + responseToAccountType.ToString().ToUpper());

            if (responseToAccountType == ConsoleKey.S)
            {
                //
                userFromCreatePasswordMethod.CustomerFinancialInformation.AccountType   = "Savings";
                userFromCreatePasswordMethod.CustomerFinancialInformation.AccountNumber = FinancialModel.NextAccountNumber;
                FinancialModel.UpdateNextAccountNumber();
                AccountMenuView.MakingATransaction(userFromCreatePasswordMethod, "Deposit", true);
            }
            else if (responseToAccountType == ConsoleKey.C)
            {
                //
                userFromCreatePasswordMethod.CustomerFinancialInformation.AccountType   = "Checking";
                userFromCreatePasswordMethod.CustomerFinancialInformation.AccountNumber = FinancialModel.NextAccountNumber;
                FinancialModel.UpdateNextAccountNumber();
                AccountMenuView.MakingATransaction(userFromCreatePasswordMethod, "Deposit", true);
            }
            else
            {
                return(FinancialAccountSetup(userFromCreatePasswordMethod));
            }

            return(userFromCreatePasswordMethod);
        }
コード例 #15
0
        private static string Input(string input)
        {
            string output = "";

            if (input == "Spacebar" || input == "Enter")
            {
                if (input == "Spacebar")
                {
                    Console.WriteLine("Add a new comparison path");
                    output = Path();
                    Console.WriteLine("Press ENTER to compare");
                    ConsoleKey consoleKey = Console.ReadKey().Key;
                    Input(consoleKey.ToString());
                }
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("INVALID INPUT, Please input a valid key");
                Console.ForegroundColor = ConsoleColor.DarkBlue;
                ConsoleKey consoleKey = Console.ReadKey().Key;
                Input(consoleKey.ToString());
            }
            return(output);
        }
コード例 #16
0
        private static ConsoleKey CallForUserInput(string Choices = null, string Reason = null, bool error = false)
        {
            //default prompt: "Press 'any key' to 'continue'"
            string trueReason = ".";

            if (Reason != null)
            {
                trueReason = " to " + Reason;
            }
            if (Choices == null)
            {
                Choices = "any key";
            }
            if (error)
            {
                Print("Sorry, that response is not valid.");
            }
            Print("Press " + Choices + trueReason);
            ConsoleKey userInput = Console.ReadKey().Key;

            Print();
            if (debug)
            {
                Print(userInput.ToString());
            }
            return(userInput);
        }
コード例 #17
0
        protected override void CustomInputHandle(ConsoleKey key)
        {
            var isLetter = key >= ConsoleKey.A && key <= ConsoleKey.Z;
            var isNumber = key >= ConsoleKey.D1 && key <= ConsoleKey.D0;
            var value    = key.ToString().ToLower();

            if (isLetter || isNumber)
            {
                promptBox.TextElement.AppendText(value);
                Invalidate(false);
            }
            else if (key == ConsoleKey.Backspace)
            {
                promptBox.Text = promptBox.Text.Remove(promptBox.Text.Length - 1);
                Invalidate(false);
            }
            else if (key == ConsoleKey.Enter)
            {
                Console.CursorVisible = false;
                Close();
                TextEntered?.Invoke(this, promptBox.Text);
            }
            else
            {
                Invalidate(true);
            }
        }
コード例 #18
0
        // Update, called by the subject when something new is happening
        public void Update(ISubject sub)
        {
            // Get the last key pressed
            ConsoleKey key = (sub as KeyReader).Key;

            // Show the last key pressed
            Console.Write(key.ToString());
        }
コード例 #19
0
ファイル: Render.cs プロジェクト: hegemonies/PingPong_client
        public static void RenderSendMessage(ConsoleKey key)
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            string ch = key.ToString();

            Helper.WriteAt(ch, countChars, 39);
            countChars++;
        }
コード例 #20
0
ファイル: ConsoleKeyUtilities.cs プロジェクト: damolinx/Core2
        /// <summary>
        /// Converts <see cref="ConsoleKey"/> into a UI-friendly string
        /// </summary>
        public static string AsUserString(ConsoleKey key)
        {
            var keyText = key.ToString();

            return((key >= ConsoleKey.D0 && key <= ConsoleKey.D9)
                ? keyText.Substring(1)
                : keyText);
        }
コード例 #21
0
        void DrawMenu()
        {
            Console.WriteLine($"[{command_parkDirectory.ToString().Substring(1)}]\tPark Directory");
            Console.WriteLine($"[{command_siteAvailability.ToString().Substring(1)}]\tCreate Reservation");
            //Console.WriteLine($"[{command_bookReservation.ToString().Substring(1)}]\tBrowse Available Sites");

            Console.WriteLine($"[{command_exit.ToString().Substring(0,3)}]\tExit");
        }
コード例 #22
0
        public Key ReadKey()
        {
            ConsoleKey key       = Console.ReadKey().Key;
            string     name      = key.ToString();
            bool       isDefined = Enum.TryParse(name, out Key consoleKey);

            return(consoleKey);
        }
コード例 #23
0
        // Update, called by the subject when something new is happening
        public void Update(ISubject sub)
        {
            // Get the last key pressed
            ConsoleKey key = (sub as KeyReader).Key;

            // Save it to a file
            File.AppendAllText(
                filename, key.ToString(), Encoding.UTF8);
        }
コード例 #24
0
        static void Main(string[] args)
        {
            Terminal.WriteLine("Press a key... pls");
            ConsoleKey k = Terminal.Read(false);

            Terminal.WriteLine("You pressed " + k.ToString());
            Thread.Sleep(1000);
            Terminal.Clear();
        }
コード例 #25
0
        private Direction?GetDirection(ConsoleKey key)
        {
            var s = key.ToString().Replace("Arrow", "");

            if (Enum.TryParse <Direction>(s, out var direction))
            {
                return(direction);
            }
            return(null);
        }
コード例 #26
0
        private void HandleShoot()
        {
            while (true)
            {
                ConsoleKey key = Console.ReadKey().Key;
                Console.Clear();

                Console.WriteLine(key.ToString());

                if (key.Equals(ConsoleKey.Escape))
                {
                    return;
                }

                if (((int)key > 48 && (int)key <= 52))
                {
                    string name  = key.ToString().Substring(1);
                    int    value = int.Parse(name) - 1;

                    currentWeapon = weapons[value];

                    Console.WriteLine("Switched weapon to: " + currentWeapon);
                }

                if (key.Equals(ConsoleKey.Spacebar))
                {
                    Console.WriteLine("Current weapon: " + currentWeapon);

                    int ammo = dictionary[currentWeapon]--;

                    if (ammo <= 0)
                    {
                        ammo = 0;
                        dictionary[currentWeapon] = ammo;
                        Console.WriteLine("Empty clip!");
                    }
                    else
                    {
                        Console.WriteLine("Ammo: " + dictionary[currentWeapon]);
                    }
                }
            }
        }
コード例 #27
0
        private static void SelectProcess()
        {
            TUI.ProcessPrompt();
            ConsoleKey inputChar = Console.ReadKey().Key;

            if (inputChar.ToString().Equals("E"))
            {
                EncodeFile();
            }
            else if (inputChar.ToString().Equals("D"))
            {
                DecodeFile();
            }
            else
            {
                TUI.ProcessError();
                SelectProcess();
            }
        }
コード例 #28
0
        public void SendKeyStroke(ConsoleKey key, bool preserveCurrentWindow)
        {
            IntPtr currentWindow = WinAPI.GetForegroundWindow();

            if (WinAPI.GetForegroundWindow() != _process.MainWindowHandle)
            {
                InputManager.SwitchWindow(_process.MainWindowHandle);
            }
            string code = key switch
            {
                ConsoleKey.Backspace => "{BACKSPACE}",
                ConsoleKey.Delete => "{DELETE}",
                ConsoleKey.DownArrow => "{DOWN}",
                ConsoleKey.End => "{END}",
                ConsoleKey.Enter => "{ENTER}",
                ConsoleKey.Escape => "{ESC}",
                ConsoleKey.Help => "{HELP}",
                ConsoleKey.Home => "{HOME}",
                ConsoleKey.Insert => "{INS}",
                ConsoleKey.LeftArrow => "{LEFT}",
                ConsoleKey.PageDown => "{PGDN}",
                ConsoleKey.PageUp => "{PGUP}",
                ConsoleKey.PrintScreen => "{PRTSC}",
                ConsoleKey.RightArrow => "{RIGHT}",
                ConsoleKey.Tab => "{TAB}",
                ConsoleKey.UpArrow => "{UP}",
                ConsoleKey.F1 => "{F1}",
                ConsoleKey.F2 => "{F2}",
                ConsoleKey.F3 => "{F3}",
                ConsoleKey.F4 => "{F4}",
                ConsoleKey.F5 => "{F5}",
                ConsoleKey.F6 => "{F6}",
                ConsoleKey.F7 => "{F7}",
                ConsoleKey.F8 => "{F8}",
                ConsoleKey.F9 => "{F9}",
                ConsoleKey.F10 => "{F10}",
                ConsoleKey.F11 => "{F11}",
                ConsoleKey.F12 => "{F12}",
                ConsoleKey.F13 => "{F13}",
                ConsoleKey.F14 => "{F14}",
                ConsoleKey.F15 => "{F15}",
                ConsoleKey.F16 => "{F16}",
                ConsoleKey.Add => "{ADD}",
                ConsoleKey.Subtract => "{SUBTRACT}",
                ConsoleKey.Multiply => "{MULTIPLY}",
                ConsoleKey.Divide => "{DIVIDE}",
                _ => key.ToString()
            };

            System.Windows.Forms.SendKeys.SendWait(code);
            if (WinAPI.GetForegroundWindow() != currentWindow && preserveCurrentWindow)
            {
                InputManager.SwitchWindow(currentWindow);
            }
        }
コード例 #29
0
        public static void Key(ConsoleKey _Key)
        {
            Output($"Нажмите клавишу {_Key.ToString()}...", ConsoleColor.Green);
            ConsoleKeyInfo _keyInfo = new ConsoleKeyInfo();

            while (_keyInfo.Key != _Key)
            {
                _keyInfo = Console.ReadKey();
            }
            Console.ResetColor();
        }
コード例 #30
0
        /// <summary>
        /// Forms a display string of <see cref="ConsoleKey"/>
        /// </summary>
        internal static string ToPopupMenuString(this ConsoleKey key)
        {
            switch (key)
            {
            case ConsoleKey.D0:
            case ConsoleKey.D1:
            case ConsoleKey.D2:
            case ConsoleKey.D3:
            case ConsoleKey.D4:
            case ConsoleKey.D5:
            case ConsoleKey.D6:
            case ConsoleKey.D7:
            case ConsoleKey.D8:
            case ConsoleKey.D9:
                return(key.ToString().Last().ToString());

            default:
                return(key.ToString());
            }
        }
コード例 #31
0
 public static bool CheckKey(ConsoleKey yesKey, ConsoleKey noKey)
 {
     while (true)
     {
         if (Console.KeyAvailable)
         {
             ConsoleKeyInfo info = Console.ReadKey(true);
             if (info.Key == yesKey)
             {
                 return true;
             }
             else if (info.Key == noKey)
             {
                 return false;
             }
             else
             {
                 Console.WriteLine("Key not reconized. Press {0} for Yes or {1} for No",
                     yesKey.ToString(), noKey.ToString());
             }
         }
     }
 }
コード例 #32
0
ファイル: Program.cs プロジェクト: dgrigorov/TelerikAcademy-1
    static void HandleKeyPress(object sender, ConsoleKey key)
    {
        Console.Clear();

        Console.WriteLine("You pressed {0}.", key.ToString());
    }
コード例 #33
0
        public static string GetKeyChar(ConsoleKey key)
        {
            switch(key)
            {
                // Alphabet.
                case ConsoleKey.A:
                    return ShiftPressed || CapsLockOn ? "A" : "a";
                case ConsoleKey.B:
                    return ShiftPressed || CapsLockOn ? "B" : "b";
                case ConsoleKey.C:
                    return ShiftPressed || CapsLockOn ? "C" : "c";
                case ConsoleKey.D:
                    return ShiftPressed || CapsLockOn ? "D" : "d";
                case ConsoleKey.E:
                    return ShiftPressed || CapsLockOn ? "E" : "e";
                case ConsoleKey.F:
                    return ShiftPressed || CapsLockOn ? "F" : "f";
                case ConsoleKey.G:
                    return ShiftPressed || CapsLockOn ? "G" : "g";
                case ConsoleKey.H:
                    return ShiftPressed || CapsLockOn ? "H" : "h";
                case ConsoleKey.I:
                    return ShiftPressed || CapsLockOn ? "I" : "i";
                case ConsoleKey.J:
                    return ShiftPressed || CapsLockOn ? "J" : "j";
                case ConsoleKey.K:
                    return ShiftPressed || CapsLockOn ? "K" : "k";
                case ConsoleKey.L:
                    return ShiftPressed || CapsLockOn ? "L" : "l";
                case ConsoleKey.M:
                    return ShiftPressed || CapsLockOn ? "M" : "m";
                case ConsoleKey.N:
                    return ShiftPressed || CapsLockOn ? "N" : "n";
                case ConsoleKey.O:
                    return ShiftPressed || CapsLockOn ? "O" : "o";
                case ConsoleKey.P:
                    return ShiftPressed || CapsLockOn ? "P" : "p";
                case ConsoleKey.Q:
                    return ShiftPressed || CapsLockOn ? "Q" : "q";
                case ConsoleKey.R:
                    return ShiftPressed || CapsLockOn ? "R" : "r";
                case ConsoleKey.S:
                    return ShiftPressed || CapsLockOn ? "S" : "s";
                case ConsoleKey.T:
                    return ShiftPressed || CapsLockOn ? "T" : "t";
                case ConsoleKey.U:
                    return ShiftPressed || CapsLockOn ? "U" : "u";
                case ConsoleKey.V:
                    return ShiftPressed || CapsLockOn ? "V" : "v";
                case ConsoleKey.W:
                    return ShiftPressed || CapsLockOn ? "W" : "w";
                case ConsoleKey.X:
                    return ShiftPressed || CapsLockOn ? "X" : "x";
                case ConsoleKey.Y:
                    return ShiftPressed || CapsLockOn ? "Y" : "y";
                case ConsoleKey.Z:
                    return ShiftPressed || CapsLockOn ? "Z" : "z";

                // Numpad keys
                case ConsoleKey.NumPad0:
                    return "0";
                case ConsoleKey.NumPad1:
                    return "1";
                case ConsoleKey.NumPad2:
                    return "2";
                case ConsoleKey.NumPad3:
                    return "3";
                case ConsoleKey.NumPad4:
                    return "4";
                case ConsoleKey.NumPad5:
                    return "5";
                case ConsoleKey.NumPad6:
                    return "6";
                case ConsoleKey.NumPad7:
                    return "7";
                case ConsoleKey.NumPad8:
                    return "8";
                case ConsoleKey.NumPad9:
                    return "9";

                // Keys below F1-F8.
                case ConsoleKey.D0:
                    return ShiftPressed ? "=" : "0";
                case ConsoleKey.D1:
                    return ShiftPressed ? "!" : "1";
                case ConsoleKey.D2:
                    return ShiftPressed ? "\"" : "2";
                case ConsoleKey.D3:
                    return ShiftPressed ? "#" : "3";
                case ConsoleKey.D4:
                    return ShiftPressed ? "¤" : "4";
                case ConsoleKey.D5:
                    return ShiftPressed ? "%" : "5";
                case ConsoleKey.D6:
                    return ShiftPressed ? "&" : "6";
                case ConsoleKey.D7:
                    return ShiftPressed ? "/" : "7";
                case ConsoleKey.D8:
                    return ShiftPressed ? "(" : "8";
                case ConsoleKey.D9:
                    return ShiftPressed ? ")" : "9";

                // Special characters.
                case ConsoleKey.Spacebar:
                    return " ";
                case ConsoleKey.Tab:
                    return "\t";
                case ConsoleKey.Backspace:
                    return "\b";
                case ConsoleKey.Enter:
                    return "\n";
                case ConsoleKey.Multiply:
                    return "*";
                case ConsoleKey.Add:
                    return ShiftPressed ? "?" : "+";
                case ConsoleKey.Subtract:
                    return "-";

                // Oem keys
                case ConsoleKey.OemComma:
                    return ShiftPressed ? ";" : ",";
                case ConsoleKey.OemPeriod:
                    return ShiftPressed ? ":" : ".";
                case ConsoleKey.OemMinus:
                    return ShiftPressed ? "_" : "-";
                case ConsoleKey.OemPlus:
                    return ShiftPressed ? "?" : "+";
                case ConsoleKey.Oem4:
                    return ShiftPressed ? "`" : "´";
                case ConsoleKey.Oem5:
                    return ShiftPressed ? "½" : "§";
                case ConsoleKey.Oem102:
                    return ShiftPressed ? ">" : "<";
            }

            return key.ToString();
        }
コード例 #34
0
ファイル: HotkeyBar.cs プロジェクト: mkibiger/CursorAreaLock
 public HotkeyBarItem(ConsoleKey key, string name, HotkeyEvent handler, int gridPosition) : this(key, key.ToString(), name, handler, gridPosition) { }
コード例 #35
0
ファイル: CLUI.cs プロジェクト: gunnerwolf/Quot
        private void SmartRead(ConsoleKey key)
        {
            string msg = "";
            this.Caps = 0;

            var WriteThread = new Thread(new ThreadStart(() =>
            {
                lock (this)
                {
                    var test = ((Keyboard.GetKeyStates(Key.LeftShift) == KeyStates.Down ||
                        Keyboard.GetKeyStates(Key.RightShift) == KeyStates.Down ||
                        Keyboard.GetKeyStates(Key.CapsLock) == KeyStates.Toggled));

                    this.Caps = test ? 1 : 2;
                }
            }));
            WriteThread.SetApartmentState(ApartmentState.STA);
            WriteThread.Start();

            while (Caps == 0)
            { }

            switch (key)
            {
                case ConsoleKey.Add:
                    break;
                case ConsoleKey.Backspace:
                    RemoveLastChar();
                    return;
                case ConsoleKey.Delete:
                    break;
                case ConsoleKey.Enter:
                    break;
                case ConsoleKey.PageDown:
                    break;
                case ConsoleKey.PageUp:
                    break;
                case ConsoleKey.LeftArrow:
                    MoveLeft();
                    return;
                case ConsoleKey.RightArrow:
                    MoveRight();
                    return;
                case ConsoleKey.Multiply:
                    msg = "*";
                    break;
                case ConsoleKey.D1:
                    if (Caps == 1)
                        msg = "!";
                    else if (Caps == 2)
                        msg = "1";
                    break;
                case ConsoleKey.D2:
                    if (Caps == 1)
                        msg = "\"";
                    else if (Caps == 2)
                        msg = "2";
                    break;
                case ConsoleKey.D3:
                    if (Caps == 1)
                        msg = "£";
                    else if (Caps == 2)
                        msg = "3";
                    break;
                case ConsoleKey.D4:
                    if (Caps == 1)
                        msg = "$";
                    else if (Caps == 2)
                        msg = "4";
                    break;
                case ConsoleKey.D5:
                    if (Caps == 1)
                        msg = "%";
                    else if (Caps == 2)
                        msg = "5";
                    break;
                case ConsoleKey.D6:
                    if (Caps == 1)
                        msg = "^";
                    else if (Caps == 2)
                        msg = "6";
                    break;
                case ConsoleKey.D7:
                    if (Caps == 1)
                        msg = "&";
                    else if (Caps == 2)
                        msg = "7";
                    break;
                case ConsoleKey.D8:
                    if (Caps == 1)
                        msg = "*";
                    else if (Caps == 2)
                        msg = "8";
                    break;
                case ConsoleKey.D9:
                    if (Caps == 1)
                        msg = "(";
                    else if (Caps == 2)
                        msg = "9";
                    break;
                case ConsoleKey.D0:
                    if (Caps == 1)
                        msg = ")";
                    else if (Caps == 2)
                        msg = "0";
                    break;
                case ConsoleKey.Subtract:
                    msg = "-";
                    break;
                case ConsoleKey.Divide:
                    msg = "/";
                    break;
                case ConsoleKey.Oem8:
                    if (Caps == 1)
                        msg = "¬";
                    else if (Caps == 2)
                        msg = "`";
                    break;
                case ConsoleKey.OemMinus:
                    if (Caps == 1)
                        msg = "_";
                    else if (Caps == 2)
                        msg = "-";
                    break;
                case ConsoleKey.OemPlus:
                    if (Caps == 1)
                        msg = "+";
                    else if (Caps == 2)
                        msg = "=";
                    break;
                default:
                    msg = key.ToString();
                    break;
            }

            SmartWrite(BufferLocation++, ConsoleHeight - 1, this.Caps == 1 ? msg : msg.ToLower());
        }
コード例 #36
0
 /// <summary>
 /// 取按键的显示内容
 /// </summary>
 public static string GetShortCutKeyDisplay(ConsoleKey ck)
 {
     var s = ck.ToString();
     if (s.Length == 2 && s[0] == 'D') s = s[1].ToString();  //处理 D1 D2 ... 的问题
     //陆续添加中
     return s;
 }
コード例 #37
0
ファイル: HotkeyBar.cs プロジェクト: mkibiger/CursorAreaLock
 public HotkeyBarItem(ConsoleKey key, string name, HotkeyEvent handler) : this(key, key.ToString(), name, handler) { }