No puedo entender cómo usar las llamadas SendMessage o PostMessage

Necesito simular una pulsación de tecla en una aplicación de terceros. Digamos que tengo una aplicación C # que necesita enviar un "8" a la aplicación Calculadora. No puedo usar SendKeys de .Net o keybd_event de win32 api porque ambos requieren que la ventana sea la más activa, lo cual no es el caso en mi situación.

Entonces eso me deja con las llamadas sendMessage y postMessage. He estado intentando en las últimas tres horas tratando de obtener algunos resultados, pero en este momento estoy completamente desesperado.

Tengo lo siguiente:

        [DllImport("user32.dll")]
    public static extern int FindWindow(string lpClassName,string lpWindowName);
    [DllImport("user32.dll")]
    public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);

    [return: MarshalAs(UnmanagedType.Bool)]
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool PostMessage(int hWnd, uint Msg, int wParam, int lParam);

    private void button1_Click(object sender, EventArgs e)
    {
        const int WM_KEYDOWN = 0x100;
        const int WM_SYSCOMMAND = 0x018;
        const int SC_CLOSE = 0x053;

        int WindowToFind = FindWindow(null,"Calculator");

        int result = SendMessage(WindowToFind, WM_SYSCOMMAND, SC_CLOSE, 0);
        Boolean result2 = PostMessage(WindowToFind, WM_SYSCOMMAND, SC_CLOSE, 0);

        int result3 = SendMessage(WindowToFind, WM_KEYDOWN,((int)Keys.NumPad7), 0);
        Boolean result4 = PostMessage(WindowToFind, WM_KEYDOWN, ((int)Keys.NumPad7), 0);
    }

Como puede ver, hago cuatro intentos para comunicarme con la calculadora. Usando sendMessage y PostMessage para cerrar la ventana y también para enviar la clave 7. Nada funciona. El método FindWindow funciona porque obtengo el controlador de la aplicación (incluso he intentado iniciar el proceso yo mismo y acceder a él con process.MainWindowHandler, pero no tuve suerte). No hay errores ni excepciones, pero simplemente no hace nada en la Calculadora.

También probé exactamente lo mismo con el bloc de notas y nada cambió también.

Respuestas a la pregunta(5)

Su respuesta a la pregunta