Discussion:
Duda sobre Aplicación AIR.
(demasiado antiguo para responder)
Carlos Velasco
2008-05-13 13:42:08 UTC
Permalink
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en la
máquina en la que dicho proceso está instalado. Las peticiones se llevan a
cabo y no hay problema con la comunicación.

El problema está en que si ejecuto la aplicación cliente (vamos, el AIR) en
la misma máquina que el Servicio .NET, cuando éste lanza las aplicaciones
que se le solicitan, la aplicación AIR está robando el foco de escritorio
automáticamente quedándose sobre las aplicaciones lanzadas. ¿Hay alguna
manera de cambiar este comportamiento?


Un saludo.

Carlos Velasco.
Andres Cayon
2008-05-13 17:46:51 UTC
Permalink
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html

Y si no: ¿Por qué no enviar la aplicación al system tray?

Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en la
máquina en la que dicho proceso está instalado. Las peticiones se llevan a
cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el AIR)
en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el foco
de escritorio automáticamente quedándose sobre las aplicaciones lanzadas.
¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Carlos Velasco
2008-05-13 17:51:59 UTC
Permalink
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre ventanas
generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en la
máquina en la que dicho proceso está instalado. Las peticiones se llevan
a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el AIR)
en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el foco
de escritorio automáticamente quedándose sobre las aplicaciones lanzadas.
¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Álvaro Vidal
2008-05-13 18:24:38 UTC
Permalink
Prueba las siguientes funciones a ver si alguna te sirve:

Para enviar la aplicación al fondo: stage.nativeWindow.orderToBack();
Para minimizar la aplicación: stage.nativeWindow.minimize();

Saludos, Álvaro.
Post by Carlos Velasco
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre
ventanas generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en
la máquina en la que dicho proceso está instalado. Las peticiones se
llevan a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el AIR)
en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el foco
de escritorio automáticamente quedándose sobre las aplicaciones
lanzadas. ¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Andres Cayon
2008-05-13 19:58:05 UTC
Permalink
Hola Carlos:
No estoy seguro de todos los métodos de superposición, pero por ejemplo, el
atributo alwaysInFront funciona con cualquier ventana, independientemente de
que sea de una aplicación AIR o no.

Sobre la segunda pregunta, me explico:
Se trata de enviarla a la bandeja del sistema al minimizarla:
Se podría, una vez que lance el proceso, minimizar la ventana de la
aplicación AIR a la bandeja de sistema:
http://www.dwug.es/go/405
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre
ventanas generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en
la máquina en la que dicho proceso está instalado. Las peticiones se
llevan a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el AIR)
en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el foco
de escritorio automáticamente quedándose sobre las aplicaciones
lanzadas. ¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Carlos Velasco
2008-05-14 07:27:36 UTC
Permalink
Hola,

El problema de OrderToBack y OrderToFront es que aunque envían la
ventana detrás de todas las otras que pueda haber en el Sistema, no ceden el
foco de escritorio a la nueva ventana que quede en el Top, con lo cual el
usuario debe pulsar sobre ella para activarla (da bastante mala sensación).

AlwaysInFront si funciona, pero yo no quiero que tenga siempre el foco,
sino que me lo puedan robar sin interacción manual con el usuario. Lo de
minimizarla no me sirve, porque en este caso concreto necesito que se vea la
aplicación AIR detrás del (por ejemplo) notepad que acaba de ser lanzado.

Por otro lado, ¿Cómo le cambio el type a la ventana principal del AIR
para que sea LIGHTWEIGHT y no aparezca en la barra de tareas???


Muchas gracias a todos.
Post by Andres Cayon
No estoy seguro de todos los métodos de superposición, pero por ejemplo,
el atributo alwaysInFront funciona con cualquier ventana,
independientemente de que sea de una aplicación AIR o no.
Se podría, una vez que lance el proceso, minimizar la ventana de la
http://www.dwug.es/go/405
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre
ventanas generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en
la máquina en la que dicho proceso está instalado. Las peticiones se
llevan a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el
AIR) en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el
foco de escritorio automáticamente quedándose sobre las aplicaciones
lanzadas. ¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Andres Cayon
2008-05-14 09:39:13 UTC
Permalink
Hola Carlos,
Post by Carlos Velasco
El problema de OrderToBack y OrderToFront es que aunque envían la
ventana detrás de todas las otras que pueda haber en el Sistema, no ceden
el foco de escritorio a la nueva ventana que quede en el Top, con lo cual
el usuario debe pulsar sobre ella para activarla (da bastante mala
sensación).
¿No debería ser la nueva ventana la que solicitara el foco? Supongo que en
principio, si desactivas la ventana de AIR, el SO se encargue de pasar el
foco a la última ventana que activó el usuario...
Post by Carlos Velasco
Por otro lado, ¿Cómo le cambio el type a la ventana principal del AIR para
que sea LIGHTWEIGHT y no aparezca en la barra de tareas???
Me parece que tampoco lo permite el SO: la primera ventana de una aplicación
debe ser de tipo normal. El truco puede ser crear un lanzador que abra una
nueva ventana (ahora sí podrías definirla del tipo lightweight o utility) y
una vez hecho, se cierre. Lo que tampoco sé es si una ventana de ese tipo te
permitirá que la envies hace atrás como si fuera una ventana normal.
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Hola,
El problema de OrderToBack y OrderToFront es que aunque envían la
ventana detrás de todas las otras que pueda haber en el Sistema, no ceden
el foco de escritorio a la nueva ventana que quede en el Top, con lo cual
el usuario debe pulsar sobre ella para activarla (da bastante mala
sensación).
AlwaysInFront si funciona, pero yo no quiero que tenga siempre el foco,
sino que me lo puedan robar sin interacción manual con el usuario. Lo de
minimizarla no me sirve, porque en este caso concreto necesito que se vea
la aplicación AIR detrás del (por ejemplo) notepad que acaba de ser
lanzado.
Por otro lado, ¿Cómo le cambio el type a la ventana principal del AIR
para que sea LIGHTWEIGHT y no aparezca en la barra de tareas???
Muchas gracias a todos.
Post by Andres Cayon
No estoy seguro de todos los métodos de superposición, pero por ejemplo,
el atributo alwaysInFront funciona con cualquier ventana,
independientemente de que sea de una aplicación AIR o no.
Se podría, una vez que lance el proceso, minimizar la ventana de la
http://www.dwug.es/go/405
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre
ventanas generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones en
la máquina en la que dicho proceso está instalado. Las peticiones se
llevan a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el
AIR) en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el
foco de escritorio automáticamente quedándose sobre las aplicaciones
lanzadas. ¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Carlos Velasco
2008-05-14 10:22:36 UTC
Permalink
Hola Andrés.
Post by Andres Cayon
Hola Carlos,
Post by Carlos Velasco
El problema de OrderToBack y OrderToFront es que aunque envían la
ventana detrás de todas las otras que pueda haber en el Sistema, no ceden
el foco de escritorio a la nueva ventana que quede en el Top, con lo cual
el usuario debe pulsar sobre ella para activarla (da bastante mala
sensación).
¿No debería ser la nueva ventana la que solicitara el foco? Supongo que en
principio, si desactivas la ventana de AIR, el SO se encargue de pasar el
foco a la última ventana que activó el usuario...
La aplicación al ser lanzada toma momentáneamente el foco, pero luego lo
pierde (sin interacción humana) dando una sensación de parpadeo en la barra
de tareas, de ahí que crea que es la aplicación AIR la que lo está robando
(tengo el AlwaysInFront a false en todo momento).
Post by Andres Cayon
Post by Carlos Velasco
Por otro lado, ¿Cómo le cambio el type a la ventana principal del AIR para
que sea LIGHTWEIGHT y no aparezca en la barra de tareas???
Me parece que tampoco lo permite el SO: la primera ventana de una
aplicación debe ser de tipo normal. El truco puede ser crear un lanzador
que abra una nueva ventana (ahora sí podrías definirla del tipo
lightweight o utility) y una vez hecho, se cierre. Lo que tampoco sé es si
una ventana de ese tipo te permitirá que la envies hace atrás como si
fuera una ventana normal.
Con .NET si estoy lanzando aplicaciones sin que salgan en la barra de
tareas.

Un saludo y gracias.
Post by Andres Cayon
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Hola,
El problema de OrderToBack y OrderToFront es que aunque envían la
ventana detrás de todas las otras que pueda haber en el Sistema, no ceden
el foco de escritorio a la nueva ventana que quede en el Top, con lo cual
el usuario debe pulsar sobre ella para activarla (da bastante mala
sensación).
AlwaysInFront si funciona, pero yo no quiero que tenga siempre el
foco, sino que me lo puedan robar sin interacción manual con el usuario.
Lo de minimizarla no me sirve, porque en este caso concreto necesito que
se vea la aplicación AIR detrás del (por ejemplo) notepad que acaba de
ser lanzado.
Por otro lado, ¿Cómo le cambio el type a la ventana principal del AIR
para que sea LIGHTWEIGHT y no aparezca en la barra de tareas???
Muchas gracias a todos.
Post by Andres Cayon
No estoy seguro de todos los métodos de superposición, pero por ejemplo,
el atributo alwaysInFront funciona con cualquier ventana,
independientemente de que sea de una aplicación AIR o no.
Se podría, una vez que lance el proceso, minimizar la ventana de la
http://www.dwug.es/go/405
--
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Post by Andres Cayon
Hola Carlos!
http://www.adobe.com/devnet/air/flash/quickstart/controlling_display_order_windows.html
Si he entendido bien el contenido del link, esos cambios son entre
ventanas generadas en AIR. Que no es el caso.
Post by Andres Cayon
Y si no: ¿Por qué no enviar la aplicación al system tray?
No te entiendo.
Post by Andres Cayon
Saludos!
Andres Cayon
Spain Adobe Dreamweaver User Group
http://www.dwug.es
----------------------
Post by Carlos Velasco
Tengo una aplicación AIR que se está conectando mediante sockets a un
proceso (aplicación .Net) para solicitarle que ejecute aplicaciones
en la máquina en la que dicho proceso está instalado. Las peticiones
se llevan a cabo y no hay problema con la comunicación.
El problema está en que si ejecuto la aplicación cliente (vamos, el
AIR) en la misma máquina que el Servicio .NET, cuando éste lanza las
aplicaciones que se le solicitan, la aplicación AIR está robando el
foco de escritorio automáticamente quedándose sobre las aplicaciones
lanzadas. ¿Hay alguna manera de cambiar este comportamiento?
Un saludo.
Carlos Velasco.
Loading...