Convertir String o Char en objeto Keys

Si uso el siguiente código:

for (int i = 0; i < text.Length; i++)
    {
        char c = text[i];
        Keys k = (Keys)(byte)c;
        MessageBox.Show(c.ToString() + "|" + k.ToString());
    }

Puedo obtener una conversión correcta solo para letras mayúsculas. El problema es que también necesito poder replicar caracteres en minúsculas, y obtengo errores de conversión en ellos. Por ejemplo, 'e' se convierte en 'NumPad5', donde 'E' se convierte correctamente en 'E'. ¿Cómo ataco esto? Voy a tomar cadenas de entrada y crear pulsaciones de teclas virtuales para un reproductor macro que estoy tratando de desarrollar.

Respuestas a la pregunta(3)

Su respuesta a la pregunta