Page 2 of 4

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Sat Oct 14, 2023 10:55 pm
by JoseAlvarez
Antonio Linares wrote:A ver si esto funciona:

whatsapp://send?phone=+15555555555&text=Here is a file for you.&document=/path/to/file.txt


No he logrado que me funcione por esta vía, Master.

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 11:39 am
by cmsoft
Jose:
Esta es una manera de enviar mensajes con documentos adjuntos.
Lo que debes hacer es emular el uso de teclado en la aplicación de Whatsapp
Code: Select all  Expand view

#include "FiveWin.ch"
function Main()
local oShell                                                        
   ShellExecute( 0, "open", "whatsapp://send?phone=111111111111&text=Estimado Sr. Antonio Linares.%0A"+;
    "Gusto en Saludarle, "+ Time() )
   oShell := CreateObject( "WScript.Shell" )
   syswait(.2)
   oShell:SendKeys( "~" ) //Doy enter para que envie el mensaje
   syswait(2)
   oShell:SendKeys("+{TAB}") //Presiono Shift Tab para que vaya a adjuntar
   syswait(.2)
   oShell:SendKeys("~") //Doy enter
   syswait(.2)
   oShell:SendKeys("{DOWN}") // Presiono flecha abajo
   syswait(.2)
   oShell:SendKeys("~")  // Doy enter
   syswait(2)
   oShell:SendKeys("c:\fwh21\samples\prueba.pdf") // Escribo el nombre del documento adjunto
   syswait(.2)
   oShell:SendKeys("~") // Doy enter
   syswait(4)
   oShell:SendKeys("~") // Doy enter
   syswait(.2)
   oShell:SendKeys("{TAB}") // Presiono TAB para que vuelva a la casilla de escritura de mensajes
return nil
 


Si falla, puedes cambiar los tiempos de espera entre cada acción, solo es cuestion de ir probando.
Espero que te sirva

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 1:43 pm
by JoseAlvarez
Saludos César.

Espero estes muy bien.

Ok, voy a probar y te comento.

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 1:52 pm
by Antonio Linares
cmsoft wrote:Jose:
Esta es una manera de enviar mensajes con documentos adjuntos.
Lo que debes hacer es emular el uso de teclado en la aplicación de Whatsapp
Code: Select all  Expand view

#include "FiveWin.ch"
function Main()
local oShell                                                        
   ShellExecute( 0, "open", "whatsapp://send?phone=111111111111&text=Estimado Sr. Antonio Linares.%0A"+;
    "Gusto en Saludarle, "+ Time() )
   oShell := CreateObject( "WScript.Shell" )
   syswait(.2)
   oShell:SendKeys( "~" ) //Doy enter para que envie el mensaje
   syswait(2)
   oShell:SendKeys("+{TAB}") //Presiono Shift Tab para que vaya a adjuntar
   syswait(.2)
   oShell:SendKeys("~") //Doy enter
   syswait(.2)
   oShell:SendKeys("{DOWN}") // Presiono flecha abajo
   syswait(.2)
   oShell:SendKeys("~")  // Doy enter
   syswait(2)
   oShell:SendKeys("c:\fwh21\samples\prueba.pdf") // Escribo el nombre del documento adjunto
   syswait(.2)
   oShell:SendKeys("~") // Doy enter
   syswait(4)
   oShell:SendKeys("~") // Doy enter
   syswait(.2)
   oShell:SendKeys("{TAB}") // Presiono TAB para que vuelva a la casilla de escritura de mensajes
return nil
 


Si falla, puedes cambiar los tiempos de espera entre cada acción, solo es cuestion de ir probando.
Espero que te sirva


Estimado César,

brillante!!! :-)

A ver si conseguimos capturar la respuesta de Windows Copilot, no consigo hacerlo funcionar. La técnica usada es la misma, ir enviando las pulsaciones adecuadas usando SendKeys()

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 4:15 pm
by cmsoft
Este código (aunque hay que seguir puliendo) está un poco mejorado, y permite enviar una imagen además de un adjunto diferente por cada mensaje, en un ciclo que puede mejorarse para obtener los datos de una consulta.
Code: Select all  Expand view

#include "FiveWin.ch"
STATIC oImg
FUNCTION Main()
LOCAL oDlg1, oBrw, oBot1,;
      aCols := {;
{'5499999999997','Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup.'+chr(13)+' Incluye Papas Fritas.',"c:\fwh21\samples\prueba.xls"},;
{'5499999999998','Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup.'+chr(13)+' Incluye Papas Fritas.',"c:\fwh21\samples\prueba.bmp"},;
{'5499999999999','Carne 120 grs. Cheddar, Huevo Bacon y BBQ.'+chr(13)+' Incluye Papas Fritas.',"c:\fwh21\samples\prueba.pdf"}}
DEFINE DIALOG oDlg1 TITLE "Envio de whatsapp" SIZE 700,600 PIXEL TRUEPIXEL RESIZABLE
   @ 60, 20 XBROWSE oBrw SIZE 400,600 pixel OF oDlg1 ARRAY aCols  ;
      HEADERS "Telefono", "Texto","Adjunto";
      COLUMNS 1,2,3;
      SIZES nil, 100,nil;
      CELL LINES NOBORDER
   WITH OBJECT oBrw
      :nRowHeight    := 150
      :CreateFromCode()
   END
@ 05,05 BUTTON oBot1 PROMPT "&Enviar" OF oDlg1 SIZE 100,40 ACTION Enviar(aCols,oBrw) PIXEL  
@ 05,450 IMAGE oImg FILE "c:\fwh21\bitmaps\sea.bmp" OF oDlg1 SIZE 200,200 PIXEL ADJUST  
ACTIVATE DIALOG oDlg1 CENTERED
RETURN nil


*--------------------------------------------------------------------------------
STATIC Function Enviar(aData, oBrw)
Local oShell, cTexto, i
oImg:CopyToClipboard()
oBrw:GoTop()
FOR i := 1 TO LEN(aData)  
   cTexto := aData[i,2]
   cTexto := STRTRAN(cTexto," ","%20")
   cTexto := STRTRAN(cTexto,"&","%26")
   cTexto := STRTRAN(cTexto,chr(13),"%0D%0A")
   ShellExecute( 0, "open", "whatsapp://send?phone="+alltrim(aData[i,1])+"&text="+cTexto)
   oShell := CreateObject( "WScript.Shell" )
   syswait(.2)  
   oShell:SendKeys( "~" )
   syswait(3)      
   oShell:SendKeys( "^v" )
   syswait(4)
   oShell:SendKeys("~")
   syswait(4)
   oShell:SendKeys("+{TAB}")
   syswait(.2)
   oShell:SendKeys("~")
   syswait(.2)
   oShell:SendKeys("{DOWN}")
   syswait(.2)
   oShell:SendKeys("~")  
   syswait(2)
   oShell:SendKeys(aData[i,3])
   syswait(.2)
   oShell:SendKeys("~")
   syswait(4)
   oShell:SendKeys("~")
   syswait(.2)
   oShell:SendKeys("{TAB}")
   oBrw:Skip()
NEXT i  
Return nil
 

Reemplazar el telefono por uno válido para probar

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 4:18 pm
by cmsoft
Aprobecho para consultarle a Mr. Rao:
Si tengo las imagenes en el XBrowse y quiero copiarlas al portapapeles para luego despues pegarlas en Whatsapp, como podría hacer?
Ejemplo, si tengo este arreglo:
Code: Select all  Expand view
     aCols := {;
{'5499999999999','Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup.'+chr(13)+' Incluye Papas Fritas.','https://bcnresto.com/img/000010/00010110.jpg',"c:\fwh21\samples\whatsapp.prg"},;
{'5499999999999','Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup.'+chr(13)+' Incluye Papas Fritas.','https://bcnresto.com/img/000010/00010114.jpg',"c:\fwh21\samples\whatsapp1.prg"},;
{'5499999999999','Carne 120 grs. Cheddar, Huevo Bacon y BBQ.'+chr(13)+' Incluye Papas Fritas.','https://bcnresto.com/img/000010/00000020.jpg',"c:\fwh21\samples\whatsapp2.prg"}}
DEFINE DIALOG oDlg1 TITLE "Envio de whatsapp" SIZE 700,600 PIXEL TRUEPIXEL RESIZABLE
   @ 60, 20 XBROWSE oBrw SIZE -20,-20 pixel OF oDlg1 ARRAY aCols  ;
      HEADERS "Telefono", "Texto","Foto","Adjunto";
      COLUMNS 1,2,3,4;
      SIZES nil, 150,100,nil;
      CELL LINES NOBORDER
   WITH OBJECT oBrw
      :nRowHeight    := 150
      :aCols[3]:cDataType := "P"      
      :CreateFromCode()
   END
 

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 7:36 pm
by sysctrl2
Excelente idea de como tener un apartado para envio de mensajes por whatsapp
Image

:D

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 8:11 pm
by cmsoft
Si pones una imagen válida en la linea
Code: Select all  Expand view
@ 05,450 IMAGE oImg FILE "c:\fwh21\bitmaps\sea.bmp" OF oDlg1 SIZE 200,200 PIXEL ADJUST  

También te adjuntará una imagen pegada

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Tue Oct 17, 2023 10:25 pm
by sysctrl2
Buenísimo :D

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Wed Oct 18, 2023 10:52 am
by JoseLuis
Buenas

Una Pregunta:

Si como Variable de texto utilizo un Get memo, como lo hago para que me ponga las lineas según las voy escribiendo en dicho get?; ya que escribo en éste campo las lineas separadas, pero al enviar, me lo hace con todas las líneas seguidas.

Gracias

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Wed Oct 18, 2023 12:15 pm
by cmsoft
Prueba con agregar en la funcion Enviar lo siguiente
Code: Select all  Expand view

cTexto := STRTRAN(cTexto,chr(13),"%0D%0A")
cTexto := STRTRAN(cTexto,chr(10),"%0D%0A") //Esta linea
 

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Wed Oct 18, 2023 8:58 pm
by JoseLuis
Funciona perfectamente

Muchas gracias César.

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Fri Oct 20, 2023 2:27 pm
by JoseAlvarez
Hola Amigos de FW.

Estimados amigos César y Master Linares, muchísimas gracias por la solución a mi inquietud de enviar mensajes vía Whatsapp desde las aplicaciones FW.
Creo que varios colegas la estaban esperando.

César, tu código lo adapté y funcionó perfectamente.

Ahora bien, observé un detalle que es el siguiente:

Si se va a enviar mensajes en lotes mediante un bucle, NO se puede trabajar en el equipo mientras el mismo este en ejecución, ya que por lo menos a mi, me sucede que si dejo el sistema enviando los mensajes y abro por ejemplo EXCEL, cada ENTER que se ejecuta en la función de envió, también se ejecuta en el excel (o cualquier otra app que abra).

Por lo demás, todo excelente.

Un abrazo.

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Fri Oct 20, 2023 4:31 pm
by cmsoft
Hola Jose, si es asi, porque en realidad emula la pulsación de teclas, y si vos te posicionas en otro lugar, la pulsacion la hace donde tiene el foco.

Re: enviar mensajes a whatsapp, ¿posible solucion?

PostPosted: Fri Oct 20, 2023 7:13 pm
by sysctrl2
Solamente con algún API de paga? :?
lo ideal sería que se puedan enviar adjuntos
sin utilizar pulsaciones
saludos