Bueno hace tiempo tenia sin programar en C# pero usaba mucho la funciones de GetAsyncKeyState pero ahora que estoy de vuelta pruebo mis proyectos pasados y nuevos que creo y no le sirven y en vb.net si me van bien el getAsynKeyState, lo uso así:
//declaracion
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(int dwflags, int dx, int dy, int cbuttons, int dwExtraInfo);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(out Point lpPoint);
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Keys vkeys);
//metodo
if (GetAsyncKeyState(Keys.F10) == -32767)
{
///funcion
}
if (GetAsyncKeyState(Keys.F11) == -32767)
{
//funcion
}