Como faço para enviar toques de tecla para uma janela sem ter que ativá-lo usando a API do Windows?

Já fiz um aplicativo que envia comandos para uma janela ativada. Eu quero ser capaz de usar o computador enquanto o processo está em execução, porque assim que eu alterno o foco para outra janela, os toques de tecla que estão sendo enviados via chaves de envio vão para a janela que acabei de usar.

Atualmente eu uso FindWindow, IsIconic e ShowWindow da API do Windows. Eu tenho que verificar para ver se a janela está lá com FindWindow e definir meu objeto para a janela específica que é retornada com essa chamada, em seguida, verificar se ele é minimizado com IsIconic e chamar ShowWindow se for e, finalmente, eu tenho que chamar Interaction.AppActivate para definir o foco para essa janela. Tudo isso é feito antes mesmo de eu enviar toques de tecla. Parece que deve haver uma maneira de simplesmente enviar toques de tecla sem ter que mostrar a janela e ativá-la. O mais importante é que enquanto meu aplicativo está executando os toques de tecla, não posso fazer nada no meu computador.

questionAnswers(3)

yourAnswerToTheQuestion