net - detectar combinacion de teclas c#



Cómo detectar si se presiona alguna tecla (3)

Buena respuesta aquí ... obtenga el conjunto de todos los estados clave al usar GetKeyboardState() :

Lo anterior es verificar el estado del teclado en vivo.

Si confía en conectar eventos hasta los eventos KeyDown / KeyUp para rastrear el estado del teclado ... entonces esto puede no ser tan preciso.

Eso es porque confía en el bombeo de mensajes para procesar y despachar esos mensajes KeyDown / KeyUp ... pueden entregarse después de que el estado real del teclado haya cambiado nuevamente.

También porque cuando se ejecuta su bit de código que está interesado en el estado del teclado (generalmente en el hilo de la interfaz de usuario) ... KeyDown o KeyUp no pueden interrumpirlo ... ya que también se envían en el hilo de la interfaz de usuario ... . Es por eso que se debe usar GetKeyBoardState() o Keyboard.IsKeyDown .

(lo anterior supone que desea y se preocupa por el estado en vivo)

https://ffff65535.com

¿Cómo puedo detectar si alguna tecla del teclado está siendo presionada actualmente? No estoy interesado en cuál es la clave, solo quiero saber si todavía hay alguna tecla presionada.

if (Keyboard.IsKeyDown(Key.ANYKEY??)
{

}

Iterar sobre los valores enum de System.Windows.Input.Key.

    public static bool IsAnyKeyDown()
    {
        var values = Enum.GetValues(typeof(Key));

        foreach (var v in values)
        {
            if (((Key)v) != Key.None)
            {
                if (Keyboard.IsKeyDown((Key)v))
                {
                    return true;
                }
            }
        }

        return false;
    }

public static IEnumerable<Key> KeysDown()
{
    foreach (Key key in Enum.GetValues(typeof(Key)))
    {
        if (Keyboard.IsKeyDown(key))
            yield return key;
    }
}

entonces podrías hacer:

if(KeysDown().Any()) //...




c#-4.0