Dobra doszedłem do tego inną drogą, jeżeli by ktoś chciał zaraz opiszę jak :
Pobieram przestrzeń nazw za pomocą
using System.Runtime.InteropServices;
Potem w klasie dodaje coś takiego:
[DllImport("user32.dll")]
static extern short GetKeyState(int nVirtKey);
I tworzę inna klasę z opisem klawiszy (Równie dobrze możemy pisać np. 0x80 lub zapisać zmienne w głównej klasie), nazwę ją VirtualKeys.cs. I dodam do niej mniej wiecej taki kod :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public static class VirtualKeys
{
public const int VK_UP = 0x26;
public const int VK_DOWN = 0x28;
public const int Keyboard_1 = 0x31;
public const int NumPad_1 = 0x61; // Każdy dodaje tyle klawiszy ile potrzebuje :P
}
Następnie za pomocą funkcji GetKeyState(int) sprawdzam czy dany klawisz jest wciśnięty.
więc w if'e będzie wyglądać to tak :
if ((GetKeyState(VirtualKeys.Keyboard_1) & 0x80) == 0x80)Console.WriteLine("1");
@Edit
Tutaj link do opisów klawiszy http://msdn.microsoft.com/en-us/library/dd375731%28VS.85%29.aspx