FoxPro/Visual FoxPro - Consulta

 
Vista:

Consulta

Publicado por Jose A. Cuevas (13 intervenciones) el 04/03/2005 22:17:38
Hola, como estan
Estoy desarrollando una aplicacion que funcionara como una especie de menajeria instantanea con algo de email, para tener comunicacion entre todas las personas que esten en la intranet, me di a la tarea de hacer esto porque la aplicacion tiene otras funciones, bueno el hecho es que cuando un usuario envia un mensaje a otro el computador receptor activa un sonido indicando el que hay algo nuevo, pero los usuario me han pedido de ser posible cuando llegue ese mensaje y el programa este minimizado el boton en la barra ne inicio parpadee al estilo messenger. No se que tan posible sea esto pero me imagino que por el lado de las instrucciones _Screen puedo conseguir algo parecido.

Mil gracias por su 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

RE:Consulta

Publicado por David Amador T. (168 intervenciones) el 04/03/2005 22:26:22
Claro que puedes hacerlo ... .Con API ...

Declare FlashWindow IN user32.dll ;
LONG hwnd,;
Long bInvert

Cuando quieras que parpadee

=FlashWindow(_Screen.hWnd, .T.)

En caso de que lo que desees que parpadee sea un formulario entonces.

=FlashWindow(Thisform.HWnd, .T.)

David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia
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

RE:Consulta

Publicado por Jose A Cuevas (13 intervenciones) el 07/03/2005 21:12:03
Lo intente pero no funciona, mira primero declare la funcion en el programa de inicio como tu lo escribes, luego lo hice en el mismo lugar donde necesito se active el parpadeo. Y el llamado para la activacion de la funcion lo hice en el lugar que deseo suceda, pero cuando se ejecuta independiente de donde haya sido declarada muestra el sgte error: Propiedad no encontrada (hWnd). Lo estoy haciendo con el _screen.

Si puedes ayudarme mas con este problema te lo agradecere
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

RE:Consulta

Publicado por David Amador T. (520 intervenciones) el 07/03/2005 22:27:02
Que versión de VFP utilizas???

David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia
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

RE:Consulta

Publicado por David Amador T. (520 intervenciones) el 09/03/2005 17:21:50
Lo que sucede es que VFP 6 no trae la propiedad hWND que es el handle (manejador) de la ventana ... Puedes obtener este handle con el API ... Así

Declare FlashWindow IN user32.dll ;
LONG hwnd, Long bInvert

Declare Integer FindWindow In WIN32API ;
STRING cNULL, STRING cWinName

nHwnd = FindWindow(0, _Screen.caption)

If nHwnd > 0
=FlashWindow(_Screen.hWnd, .T.)
Endif

Prueba el ejemplo así.

David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia
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

RE:Consulta

Publicado por Jose A Cuevas (13 intervenciones) el 11/03/2005 21:40:09
David, me encuentro muy agradecido con tu colaboracion pero resulta que implemente el codigo que me envias y sigue apareciendo el error "no se encutra propiedad hWnd" cuando ejecuta la linea de programa ->"=FlashWindow(_Screen.hWnd, .T.) ".

Gracias si tiente alguna otra sugerencia.
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

RE:Consulta

Publicado por David Amador T. (520 intervenciones) el 11/03/2005 22:15:10
Hola disculpa ... cometi un error ... ahora pruebalo

Declare FlashWindow IN user32.dll ;
LONG hwnd, Long bInvert

Declare Integer FindWindow In WIN32API ;
STRING cNULL, STRING cWinName

nHwnd = FindWindow(0, _Screen.caption)

If nHwnd > 0
=FlashWindow(nHwnd, .T.)
Endif

David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia
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

RE:Consulta

Publicado por Jose A Cuevas (13 intervenciones) el 11/03/2005 22:48:50
David, yo habia intentado el cambio porque adverti que era probable un error del codigo y de igual manera como se les escriba a la variable indica el mismo error en la linea que te comente anteriormente, anunciado el nombre de la variable que se use independiente de su nombre, ahora investigando en internet encontre que la funcion =FlashWindowsEx permite el parpadeo un numero determinado de veces mientras =FlashWindow solo permite un solo parpadeo, obviamente repitiendo varias veces la linea o en un for se multiplicaria los parpadeos, no se si eso sea tan cierto porque no conozco ninguna de las dos funciones, espero que si puedes darme alguna otra ayuda pues te lo agradecere de igual forma ya has hecho suficiente con la atencion que me has brindado.

Mil gracias.

Jose A Cuevas
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