Envío de mensajes con Whatsapp. Me funciona pero...¿ Qué puede estar ocurriendo ?

314 views
Skip to first unread message

arti...@gmail.com

unread,
Jul 18, 2022, 5:07:50 AM7/18/22
to Comunidad de Visual Foxpro en Español
Hola, tengo un código para enviar mensajes, tanto texto como archivos de imágenes y en mis ordenadores funciona perfectamente, pero el ejecutable en una instalación no envía ningún mensaje, simplemente no hace nada. El código que uso es el siguiente:

        Scan
            Scatter Memvar
            cPhone=ALLTRIM(m.movil)
            cMessage=Alltrim(m.texto)

            Declare  Integer FindWindow In WIN32API String , String
            Declare  Integer SetForegroundWindow In WIN32API Integer
            Declare  Integer  ShowWindow  In WIN32API Integer , Integer
            Declare Integer ShellExecute In shell32.Dll ;
                INTEGER hndWin, ;
                STRING cAction, ;
                STRING cFileName, ;
                STRING cParams, ;
                STRING cDir, ;
                INTEGER nShowWin
            Local lt, lhwnd
            cmd='whatsapp://send?phone=&cPhone&text=' + cMessage
            =ShellExecute(0, 'open', cmd,'', '', 1)
            WAIT WINDOW  ">"+cMessage+"<"+cPhone+"<" Timeout 8 && 8 seconds internal in every message
            lt = "Whatsapp"
            lhwnd = FindWindow (0, lt)
            If lhwnd!= 0
                SetForegroundWindow (lhwnd)
                ShowWindow (lhwnd, 1)
                ox = Createobject ( "Wscript.Shell" )
                ox.sendKeys ( '{ENTER}' )
            Else
                Messagebox ( "¡¡¡ Whatsapp no está activado !!!" )
            Endif
        Endscan            

Tenngo un 'wait window ' puesto en donde me aparece el mensaje de texto y el número a donde se envía, mas que nada como comprobación..
Lo extraño es que cuando mando imágenes, sí se envían correctamente pero los textos pasa olímpicamente ¿ qué fallo puedo estar cometiendo ?. Saludos.

HernanCano

unread,
Jul 18, 2022, 8:12:10 AM7/18/22
to Comunidad de Visual Foxpro en Español
Pues... sinceramente....es extraño que algo (con respecto a esos comandos) te funcione.

Por que por ejm dices que para las imágenes te funciona.... pero no debiera funcionar, pues --como ves en la imagen adjunta-- se necesita la secuencia de teclas CONTRL+V (es decir Pegar, que ves como  ^{v} ), lo que no está en lo que muestras.

Y cuando se envía sólo texto, si sí te funciona pero hay algún momento (en modo de ejecución) en que se queda bloqueado el sistema... sin hacer nada...., pues... ten presente que ese mecanismo (mostrado en esos comandos) no es confiable, pues si depende de una secuencia de teclas que deben ser "presionadas" automática y mágicamente (por alguien q no es un humano), --y sabiendo que no se debe usar el computador mientras el programa está ejecutando éso--... pues no es confiable y tenemos que someternos a éso: fallas como las que mencionas.

Así que (1) o convives con éso.... (2) o cambias a otra metodología.

Para Tariq muy seguramente le funcionó, pues --lo más probable-- sólo lo ejecutó desde el .PRG.....

borrable1.png


Message has been deleted

arti...@gmail.com

unread,
Jul 18, 2022, 12:00:01 PM7/18/22
to Comunidad de Visual Foxpro en Español
Este fragmento de código está copiado directamente de la página:

If lhwnd!= 0  
  SetForegroundWindow (lhwnd)  
  ShowWindow (lhwnd, 1) 
    ox = Createobject ( "Wscript.Shell" ) 
    ox.SendKeys ("^{v}") Sleep(2000)  
  ox.SendKeys ( '{ENTER}' )
Else
    Messagebox ( "Whatsapp is not activated!" 
) Endif


Por otro lado no sé quien es Tariq que mencionas en tu mensaje y por otro lado, cuando se ejecuta, me funciona el exe tal cual y en 2 ordenadores y va perfecto. De hecho, esta semana pienso probar el mismo código en otra instalación de la aplicación que está funcionando a ver qué resultado da

Vinicio Altamirano

unread,
Jul 18, 2022, 1:12:15 PM7/18/22
to publice...@googlegroups.com
Utilizando el codigo muy similar al que tu tienes, yo desarrolle el codigo completo para enviar mensajes por whatspapp incluido imagenes, puedo decirte que lo que provoca el fallo en ciertos equipos puede ser por el comando wait Window q

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/e393a3da-b65b-47f2-8c02-adac74cf419en%40googlegroups.com.

HernanCano

unread,
Jul 18, 2022, 2:55:00 PM7/18/22
to Comunidad de Visual Foxpro en Español
Tariq Mehmod es el turco que publicó esos comandos.
Observa la URL que acabas de poner (ver imagen adjunta).

borrable1.png

Zarlu

unread,
Jul 18, 2022, 4:01:34 PM7/18/22
to Comunidad de Visual Foxpro en Español
Buenas tarde artigest!

Definitivo ese manera es inestable, insegura, pero bueno la idea es apoyarte con lo que requieres.
Cuando se trabaja con emulación de teclas hay que dar tiempo a que se resuelva el comando.
Se depende de la velocidad de la pc y la conexión a internet, Bajo esta premisa entonces variará de pc a pc.

Incluso alguna veces sendkey() no es efectivo y hay que echar mano de otras herramientas como Autoit.

Cuando he tenido que usar ese método he tenido también que implementar configuración para  aumentar/disminuir los tiempos de espera de carga de las páginas y los tiempos de espera de respuesta de cada envío de teclas.

Algo así:
lnTiempoCarga=5&&segundos
lnTiempoKeys=2000&&milisegundos

lcWait=VAL(SYS(2))+ lnTiempoCarga

DO WHILE VAL(SYS(2))<lcWait
*aquí la rutina de comprobación de carga y salida del ciclo
ENDDO   

*seguida de una rutina de error por si no cargó la página

Y en el SendKey()

wshell.SendKeys(1000+ lnTiempoKeys )&&los 1000 son la base que en pruebas funcionó

En resumen mi sugerencia es que ajustes tus tiempos de espera.
Para pc más veloces se requiere más tiempo de espera.

Te adjunto una imagen de mi configuración de espera de una aplicación con emulación de teclas.

Suerte
zarlu
Chetumal, Quintana Roo, México

Sin título.png

arti...@gmail.com

unread,
Jul 19, 2022, 6:54:02 AM7/19/22
to Comunidad de Visual Foxpro en Español
Solucionado, el proceso tal cual para envíos a Whatsapp funciona bien, el problema estaba en que el cliente tenía una versión antigua del Whatsapp de escritorio, lo actualizó y ahora funciona todo correcto
Reply all
Reply to author
Forward
0 new messages