Usa SendMessage con las intrucciones WM_CHAR, WM_KEYDOWN y WM_KEYUP.
Es la forma más sencilla de enviar teclas a aplicaciones externas sin que se pierdan hacia otro lado simplemente enviarlas al handle...
Aquí te pongo un ejemplo de un void llamado SendKey
public const int WM_CHAR = 0x102;
public const int WM_KEYDOWN = 0x100;
public const int WM_KEYUP = 0x101;
public static void SendKey(IntPtr mHandle, int key)
{
SendMessage(mHandle, WM_KEYDOWN, key, 0);
SendMessage(mHandle, WM_CHAR, key, 0);
SendMessage(mHandle, WM_KEYUP, key, 0);
Thread.Sleep(0x19);
}
Lo use y lo sigo usando es my efectivo