P / Invoke PostKeybdMessage .
РЕДАКТИРОВАТЬ 1
Что-то в этом роде:
[DllImport("coredll.dll", SetLastError = true)]
internal static extern bool PostKeybdMessage(IntPtr hwnd, uint vKey,
uint flags, uint cCharacters,
uint[] pShiftStateBuffer,
uint[] pCharacterBuffer);
private static void SendChar(byte key)
{
uint KeyStateDownFlag= 0x0080;
uint KeyShiftDeadFlag= 0x20000;
uint[] buf1 = new uint[] { (uint)key };
uint[] DownStates = new uint[] { KeyStateDownFlag };
uint[] DeadStates = { KeyShiftDeadFlag };
PostKeybdMessage(new IntPtr(-1), 0, KeyStateDownFlag, 1, DownStates, buf1);
PostKeybdMessage(new IntPtr(-1), 0, KeyShiftDeadFlag, 1, DeadStates, buf1);
}