En el siguiente ejemplo se utiliza la función AppActivate para activar una función en funcionamiento y, a continuación, se utiliza la clase SendKeys para enviarle pulsaciones de teclas.
Dim progID As Integer = 0
Dim BlockProceso() As Process = Process.GetProcessesByName("notepad")
progID = BlockProceso.Length() - 1
AppActivate(BlockProceso(progID).MainWindowTitle)
SendKeys.SendWait("Hello world!")
'' Enviamos Ctrl S para abrir el cuadro de dialogo guardar como.
'SendKeys.SendWait("^S")
'' Enviamos el nombre del nuevo archivo
'SendKeys.SendWait("c:\HelloWorld.txt")
'' Enviamos Alt S para guardar el archivo
'SendKeys.SendWait("%S")
**Si no se encuentra una aplicación con el título solicitado, se producirá un error System.ArgumentException.
***Cuando se la llama con una cadena, la función AppActivate activa la primera aplicación que encuentra en la que la barra de título de la ventana de aplicación coincida con la cadena solicitada, aunque haya varias aplicaciones con el mismo título. Para evitar este problema, puede utilizar la función Shell para iniciar la aplicación y suministrar a la función AppActivate el identificador de programa devuelto.
Bueno espero y te sea de utilidad.
Las validaciones de aplicacion abierta corren por tu cuenta. La solucion está implicita en lo que mando.