FoxPro/Visual FoxPro - Enviar un Form hacia delante

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Enviar un Form hacia delante

Publicado por kong (682 intervenciones) el 17/02/2010 21:58:52
Hola progradores.por favor una consulta.

Tengo 3 programas en .exe que estan ejecutandse al mismo tiempo. Normalmente navego entre los programas utilizando <Alt>+<Tab>. Todo funciona bien, pero ahora quiero poner una alerta en uno de los programas (transcurrido una cantidad de tiempo, salta una ventana de advertencia)...... Lo que quisiera es que esa ventana se posisione sobre todas las otras ventanas, y lo mas importante que tenga el ENFOQUE, de tal manera que el usuario al ver la ventana solamente deba presionar <Enter> y listo, sin necesidad de navegar con las teclas <Alt>+<Tab> hasta poder encontrar el foco del formulario.

Nota. pretendo no usar el Raton, solamente el teclado.

Ya he probado con SETFOCUS, ZORDER, AlwaysonTop, incluso he simulado hacer un click , pero no han funcionado.... Es muy probable que necesite un API de windows.

...Muy agradecido cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 20
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Enviar un Form hacia delante

Publicado por Marcelo (L) (186 intervenciones) el 18/02/2010 03:13:12
Prueba con esta funcion

ActivaWin(nombreaplicacion)

FUNCTION ActivaWin(cCaption)

local nHWD
declare INTEGER FindWindow in WIN32API ;
STRING cNULL, ;
STRING cWinName

declare SetForegroundWindow in WIN32API ;
INTEGER nHandle

declare SetActiveWindow in WIN32API ;
INTEGER nHandle

declare ShowWindow in WIN32API ;
INTEGER nHandle, ;
INTEGER nState

nHWD = FindWindow(0, cCaption)
if nHWD > 0
* VENTANA YA ACTIVA LA MOSTRAMOS
ShowWindow(nHWD,9)
* LA PONEMOS ENCIMA
SetForegroundWindow(nHWD)
* LA ACTIVAMOS
SetActiveWindow(nHWD)
return .T.
else
*VENTANA NO ACTIVA
return .F.
endif
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Enviar un Form hacia delante

Publicado por kong (682 intervenciones) el 18/02/2010 21:15:02
hola Marcelo, gracias, he probado la funcion pero sigue sin funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Enviar un Form hacia delante

Publicado por kong (682 intervenciones) el 19/02/2010 00:25:14
hola programadores, encontre una solución, y es:
En lugar de simplente mandar un Do Form, hice un pequeño ejecutable e hice un RUN/n..... por alguna razon windows manda ese pequeño ejecutable al frente y enfocado.

Como siempre "una solucion artesanal"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar