https://foro.gambas-es.org/viewtopic.php?f=4&t=1978
-----------------------------------
Marcelo
Domingo, 23 Octobre 2011, 00:55

Detectar Si Esta Corriendo Una Aplicación.
-----------------------------------
Hola, estoy intentando detectar si una ventana/aplicación está abierta para poder mandarle una combinación de teclas.
Lo estoy intentando mediante la clase "Desktop" en gambas3

Se supone que lanzo la aplicación cuyo título es "Backup xx/xx/xx" y pretendo esperar a que esté abierta para mandarle teclas.
Estoy empezando a probar pero puntero.count siempre es 0
este es un ejemplo de código. Alguna sugerencia?
[code linenumbers=false syntax=gambas]
Dim puntero As Pointer[]
puntero = Desktop.FindWindow("*Backup*", "", "")
if puntero.count > 0
  Desktop.sendkeys("[shift][return]")
endif
[/code]


Muchísimas gracias...

Marcelo


-----------------------------------
jguardon
Domingo, 23 Octobre 2011, 11:51

Re: Detectar Si Esta Corriendo Una Aplicación.
-----------------------------------
¿La aplicación que pretendes interceptar es Gambas o es otra aplicación externa?

De todos modos puede que en tu código no haya tiempo suficiente para que el gestor de ventanas notifique que realmente está abierta, por tanto yo utilizaría un bucle para esperar a que el puntero retorne un valor diferente o mayor que 0:

[code linenumbers=false syntax=gambas]While puntero.count < 1
    puntero = Desktop.FindWindow("*Backup*", "", "") 
    Wait 0.1
Wend[/code]

Cuando encuentre la ventana se saldrá del bucle y "puntero[0]" tendrá una referencia a la ventana deseada. Si aún así no la encuentra, revisa la sintaxis de FindWindow y sus argumentos.

Espero que te sirva, saludos


-----------------------------------
Marcelo
Domingo, 23 Octobre 2011, 16:15

Re: Detectar Si Esta Corriendo Una Aplicación.
-----------------------------------
Gracias Jesús, eso es lo que estoy haciendo pero no logro que detecte nada....
La aplicación no es Gambas, estoy intentando automatizar un envío de correo mediante Thunderbird ya que no tuve éxito con SMTP.
Lo que hice fue un Desktop.Sendmail, esto me abre una ventana del editor con el correo y su adjunto listo para ser enviado y mi intención era enviarle un "Shift+Enter" para que se envíe directamente sin intervención del usuario...
Voy a seguir investigando...

muchas gracias por la ayuda!


-----------------------------------
jguardon
Domingo, 23 Octobre 2011, 17:29

Re: Detectar Si Esta Corriendo Una Aplicación.
-----------------------------------
¿Has mirado el componente SMTP?  En gambas 2 estaba pobremente implementado, pero supongo que algo habrá cambiado en Gambas 3, para mejor, espero...

Con dicha clase no es necesario usar aplicaciones externas, porque conectas directamente con un servidor de correo.

Saludos


-----------------------------------
Marcelo
Domingo, 23 Octobre 2011, 18:04

Re: Detectar Si Esta Corriendo Una Aplicación.
-----------------------------------
Si Jesús, es lo primero que intenté porque me pareció la mejor opción pero no logre enviar el correo. Solo recibo el mensaje de error.
Si te parece pego acá el código que utilicé para que vean si el error es mio..
O mejor debería hacerlo en el post de Soplo que es quien explica la clase SMTP y de donde tomé dicho ejemplo?


