Desarrollamos una utilidad de línea de comando en C# (C Sharp), válida para ser ejecutada por otras aplicaciones externas, que admite envío de título de ventana y pulsación de teclas. La aplicación de consola buscará la ventana (aplicación) en ejecución por el título de la ventana, si la encuentra y la puede enfocar, le enviará la pulsación de teclas establecida por parámetro. Como ejemplo lanzamos esta app de línea de comando desde una aplicación Delphi, haciendo una llamada de teléfono a un número marcado en la aplicación Cisco IP Communicator.

Aplicación C# que envía pulsación de teclas a aplicación externa

A continuación mostramos el código fuente completo en C# de la aplicación de consola (Console Application) que permite recibir los siguientes parámetros:

  • Tipo de búsqueda de la aplicación externa abierta. Las opciones:
    • Titulo_Ventana: buscará la aplicación externa abierta por el título de la ventana (se puede consultar en el Administrador de tareas). Por ejemplo, para el caso de la aplicación Cisco IP Communicator el título de la ventana (establecido en el parámetro siguiente, será «Cisco IP Communicator»).
    • Nombre_Clase: buscará la aplicación externa abierta por el nombre de la clase.
  • Nombre de la ventana o bien de la clase: en este segundo parámetro introduciremos el nombre de la ventana/clase de la aplicación abierta a la que queramos enviar la pulsación de teclas. Si lleva espacios lo estableceremos entrecomillado.
Aplicación C# que envía pulsación de teclas a aplicación externa
  • Teclas a enviar a aplicación externa: en el tercer parámetro estableceremos las teclas que se enviarán a la aplicación externa abierta, si se incluyen espacios, entrecomillaremos este parámetro.
  • llamar: último parámetro, opcional. Si se incluye la aplicación enviará al final de las teclas indicadas en el parámetro anterior, también la tecla INTRO.

La aplicación de consola en C# devolverá los siguientes códigos según el resultado de la ejecución:

  • 0: la ejecución de la aplicación de consola, la búsqueda de la aplicación externa, el enfoque y el envío de teclas ha sido correcto.
  • 1: error, no se ha encontrado la ventana de la aplicación externa abierta.
  • 2: error, se ha producido cualquier otro error.
  • 3: error, la ventana de la aplicación externa se ha encontrado pero no ha podido ser enfocada (traída al frente).

El código fuente completo:

Ejemplo de uso de aplicación de consola C# que envía pulsación de teclas con aplicación Delphi

La aplicación de consola anterior, que una vez compilada genera el fichero EnviarTeclas.exe puede ser usada desde cualquier otra aplicación o script powershell, bat, etc.. Dado que se ejecuta desde la línea de comandos y se le pasan los parámetros indicados anteriormente.

A continuación mostramos un ejemplo de aplicación Delphi que lanza la aplicación C# anterior. Esta aplicación realiza una llamada de teléfono, usando Cisco IP Communicator. Desarrollada en Delphi, aunque el proceso es el mismo para cualquier otro lenguaje de progamación.

La aplicación Delphi ejecutará la aplicación de consola anterior, para pasarle el nombre de la aplicación Cisco IP Communicator, un número de teléfono y el parámetro «llamar» (para que envíe al final un INTRO y haga la llamada directamente).

La ventana de la aplicación Delphi tendrá este aspecto:

Aplicación C# que envía pulsación de teclas a aplicación externa

El código fuente de la ventana anterior de la aplicación en Delphi es:

La aplicación en funcionamiento para mostrar la ventana de Cisco IP Communicator y marcar una extensión de teléfono

La aplicación de ejemplo en Delphi (puede ser cualquier otra) ejecutará el fichero EnviarTeclas.exe (generado con la aplicación de consola C#) y le pasará los siguientes parámetros:

EnviarTeclas.exe Titulo_Ventana «Cisco IP Communicator» 968505050 llamar

Añadirá el parámetro «llamar» si se ha marcado el check «Marcar y llamar»:

La aplicación en funcionamiento para mostrar la ventana de Cisco IP Comunicator y marcar una extensión de teléfono

La aplicación ejecutada de consola EnviarTeclas.exe buscará la aplicación «Cisco IP Communicator», si la encuentra abierta y puede traerla al frente (enfocarla), enviará la pulsación de teclas «968505050» y al pasarle el parámetro «llamar», también enviará la pulsación de la tecla INTRO para que efectúe la llamada al número tecleado:

La aplicación en funcionamiento para mostrar la ventana de Cisco IP Comunicator y marcar una extensión de teléfono