"Вылавливаем Клавиши" [C#]

Всем привет.
Сегодня мы научимся "отлавливать" клавиши,например для каспера,нажал Q каспер работает,отжал не работает.
Скажу сразу я - Говнокодер,но все работает.

Так вот.Будем делать через поток.

Для начала подключим пространство имен:
Код:
using System.Runtime.InteropServices;
using System.Threading;
Затем "GetAsyncKeyState":
Код:
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Int32 vKey);

Создадим булеву переменную:

Создадим булеву переменную:
Код:
public bool check = true;
Код:
public void Key()
{
   while(check)  //Цикл
   {
         if(!casper) //Название функции
         {
               short casperKey = GetAsyncKeyState(0x51); //0x51 - код клавиши,ниже выложу коды клавиш
               if(casperKey != 0)
               {
               MemHack.WriteByteArray((IntPtr)АДРЕСС, new byte[] { Байты }); //Включаем его
               }
               else
               {
               MemHack.WriteByteArray((IntPtr)АДРЕСС, new byte[] { Байты }); //Выключаем его
               }
         }
   }
}
в public_Form1() пишем:
Код:
public_Form1()
{
      InitializeComponent();
      Thread wk = new Thread(WaitKey); //Обьявляем,что функция WaitKey поток и называем её wk
      wk.Start(); //Запускаем Поток
}

В принципе,все.

коды клавиш
Код:
0x41, //A key 
0x42, //B key 
0x43, //C key 
0x44, //D key 
0x45, //E key 
0x46, //F key 
0x47, //G key 
0x48, //H key 
0x49, //I key 
0x4A, //J key 
0x4B, //K key 
0x4C, //L key 
0x4D, //M key 
0x4E, //N key 
0x4F, //O key 
0x50, //P key 
0x51, //Q key 
0x52, //R key 
0x53, //S key 
0x54, //T key 
0x55, //U key 
0x56, //V key 
0x57, //W key 
0x58, //X key 
0x59, //Y key 
0x5A, //Z key