Usando un programa escrito en AutoIt, ¿Es posible saber que botón se ha pulsado en una ventana de otro programa no realizado en AutoIt?
Por poner un ejemplo parecido pero sencillo:
- Suponemos una ventana del Bloc de Notas de Windows en la que hay un archivo previamente guardado (ya con nombre de archivo) pero modificado desde la última vez que fue guardado.
- El programa en AutoIt envía la combinación de teclas Ctrl+N para preparar un nuevo archivo, y el Bloc de Notas presenta la ventana "Bloc de Notas" en la que pregunta si guardar el archivo actual o no.
- El programa de AutoIt debe dejar al usuario la opción de guardar o no los cambios (para este supuesto sencillo ignoramos la posibilidad de que pulse "Cancelar"), es decir, de alguna manera debe ser elección del usuario si guardar o no.
- Una vez que el usuario ha elegido si guardar o no, el programa de AutoIt debería detectar cual fue la respuesta del usuario y a continuación realizar diferentes acciones según si ha elegido guardar o no (para este supuesto ignoramos la posibilidad de comprobar propiedades como la fecha del archivo, ya que esto es un supuesto simple y en el caso real no sería viable)
En esa situación tanto si el usuario elige guardar o no, la ventana "Bloc de Notas" en la que se preguntaba si guardar o no desaparece (lo cual podría detectar con AutoIt) y no aparece ninguna otra que distinga ambos casos (lo cual también podría detectarse con AutoIt), es decir, no encuentro una manera de averiguar cual fue la decisión del usuario para decidir con cual de las dos diferentes acciones continuar... ¿Hay alguna manera de "monitorizar" los botones de una ventana y averiguar cual ha sido pulsado?
El caso real para el que quiero hacer esto, es esta ventana de GoldMine, en la que una vez rellenados los campos automáticamente mediante AutoIt, quiero que el programa de AutoIt se detenga para dar la elección al usuario de si finalmente agregar el registro o no. En ambos casos, tanto si lo agrega como si lo cancela, la ventana "agregar nuevo registro" se cierra y se regresa a la ventana principal, con lo que no encuentro una manera de averiguar cual ha sido la decisión del usuario y continuar de una manera o de otra una vez que AutoIt detecta que la ventana "agregar nuevo registro" se ha cerrado. Y por tanto la pregunta sería la misma ¿Hay alguna manera de "monitorizar" los botones de una ventana y averiguar cual ha sido pulsado?
Gracias
Si hace falta pongo el código fuente. El otro problema que tuve y consulté anteriormente ya lo resolví.
Saber qué botón se ha pulsado de una ventana
Re: Saber qué botón se ha pulsado de una ventana
Bueno, la otra consulta ya la resolví
para esta se nos ocurre :
He visto que hay una función llamada "_IsPressed" que permitiría saber si has pulsado una(s) determinada(s) tecla(s)... Si utilizas el teclado para cerrar la ventana "Agregar nuevo registro", se podría utilizar para determinar tu respuesta. Por ejemplo, tras ver el posible duplicado estando en la ventana "Agregar nuevo registro", si pulsas "Esc" para cerrar la ventana sin añadir el registro, eso sí podría detectarlo, o si pulsas "Intro" para añadir el registro, sí podría detectarlo. No se podría detectar si usas el ratón y pulsas los botones de la ventana con el ratón.
Voy a probarla.
Gracias
para esta se nos ocurre :
He visto que hay una función llamada "_IsPressed" que permitiría saber si has pulsado una(s) determinada(s) tecla(s)... Si utilizas el teclado para cerrar la ventana "Agregar nuevo registro", se podría utilizar para determinar tu respuesta. Por ejemplo, tras ver el posible duplicado estando en la ventana "Agregar nuevo registro", si pulsas "Esc" para cerrar la ventana sin añadir el registro, eso sí podría detectarlo, o si pulsas "Intro" para añadir el registro, sí podría detectarlo. No se podría detectar si usas el ratón y pulsas los botones de la ventana con el ratón.
Voy a probarla.
Gracias