ConsoleKeyInfo CreateKeyInfoFromInt (int n, bool alt)
{
char c = (char) n;
ConsoleKey key = (ConsoleKey)n;
bool shift = false;
bool ctrl = false;
switch (n){
case 10:
key = ConsoleKey.Enter;
break;
case 0x20:
key = ConsoleKey.Spacebar;
break;
case 45:
key = ConsoleKey.Subtract;
break;
case 43:
key = ConsoleKey.Add;
break;
case 47:
key = ConsoleKey.Divide;
break;
case 42:
key = ConsoleKey.Multiply;
break;
case 8: case 9: case 12: case 13: case 19:
/* Values in ConsoleKey */
break;
case 27:
key = ConsoleKey.Escape;
break;
default:
if (n >= 1 && n <= 26) {
// For Ctrl-a to Ctrl-z.
ctrl = true;
key = ConsoleKey.A + n - 1;
} else if (n >= 'a' && n <= 'z') {
key = ConsoleKey.A - 'a' + n;
} else if (n >= 'A' && n <= 'Z') {
shift = true;
} else if (n >= '0' && n <= '9') {
} else
key = 0;
break;
}
return new ConsoleKeyInfo (c, key, shift, alt, ctrl);
}