Page 2 of 4
Re: enviar mensajes a whatsapp, ¿posible solucion?
Posted: 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?
Posted: 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
#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?
Posted: 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?
Posted: 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
#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 _ 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?
Posted: 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
#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?
Posted: 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
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?
Posted: Tue Oct 17, 2023 7:36 pm
by sysctrl2
Excelente idea de como tener un apartado para envio de mensajes por whatsapp
Re: enviar mensajes a whatsapp, ¿posible solucion?
Posted: Tue Oct 17, 2023 8:11 pm
by cmsoft
Si pones una imagen válida en la linea
Code: Select all | Expand
@ 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?
Posted: Tue Oct 17, 2023 10:25 pm
by sysctrl2
Buenísimo
Re: enviar mensajes a whatsapp, ¿posible solucion?
Posted: 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?
Posted: Wed Oct 18, 2023 12:15 pm
by cmsoft
Prueba con agregar en la funcion Enviar lo siguiente
Code: Select all | Expand
cTexto := STRTRAN(cTexto,chr(13),"%0D%0A")
cTexto := STRTRAN(cTexto,chr(10),"%0D%0A") //Esta linea
Re: enviar mensajes a whatsapp, ¿posible solucion?
Posted: Wed Oct 18, 2023 8:58 pm
by JoseLuis
Funciona perfectamente
Muchas gracias César.
Re: enviar mensajes a whatsapp, ¿posible solucion?
Posted: 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?
Posted: 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?
Posted: 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