C # e SendMessage (keys) não estão funcionando

Eu tentei enviar uma chave para um aplicativo. Para um teste fácil, usei o bloco de notas. É assim que o código se parece:

[DllImport("USER32.DLL", EntryPoint = "SendMessageW", SetLastError = true,
         CharSet = CharSet.Unicode, ExactSpelling = true,
         CallingConvention = CallingConvention.StdCall)]
    public static extern bool SendMessage(IntPtr hwnd, int Msg, int wParam, int lParam);


        const int WM_KEYDOWN = 0x100;
    const int WM_a = 0x41;

        public void Press()
    {
        Process[] p = Process.GetProcessesByName("notepad");
        IntPtr pHandle = p[0].MainWindowHandle;

        SendMessage(pHandle, WM_KEYDOWN, WM_a, 0);
    }

Mas nada acontece.

Meu principal objetivo é enviar a chave para um aplicativo elevado, mas ficaria feliz em enviá-lo ao bloco de notas primeiro. Quero trabalhar com o SendMessage, porque quero controlar por quanto tempo pressiono um botão e também não quero ter o outro aplicativo em primeiro plano. Essa é a razão pela qual não estou trabalhando com as SendKeys.

questionAnswers(1)

yourAnswerToTheQuestion