Ayer encontré en Foxite unos códigos para poder enviar mensajes a Whatsapp desde VFP, para ello, es neesario tener en el equipo instalado y configurado correstamente el Whatsapp para Windows (por lo menos en mi caso) no se si con Whatsapp web funciona. Los códigos fueron compartidos por Tariq Mehmood, de Paquistan. Espero les sirva a alguno. (Hice la traducción de algunos mensajes).
*------------------------------------------------------------
* 1- Como enviar un mensaje simple
*------------------------------------------------------------
** Declare Sleep
Declare Sleep In kernel32 Integer
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
cPhone=[923000000000] &&Cambiar el número incluyendo el código del país pero sin el +
ccMessage=[Salduos, prueba de Whatsapp desde VFP.]
cmd='whatsapp://send?phone=&cPhone&text='+ccMessage
=ShellExecute(0, 'open', cmd,'', '', 1)
Wait "" Timeout 3
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
If lhwnd!= 0
SetForegroundWindow (lhwnd)
ShowWindow (lhwnd, 1)
ox = Createobject ( "Wscript.Shell" )
Sleep(2000)
ox.sendKeys ( '{ENTER}' )
Else
Messagebox ( "Whatsapp no esta activado" )
Endif
*------------------------------------------------------------
* 2- Como enviar un archivo de imagen
*------------------------------------------------------------
Do image_to_clip
** Declare Sleep
Declare Sleep In kernel32 Integer
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
cPhone=[923000000000] &&Cambiar el número incluyendo el código del país pero sin el +
cmd='whatsapp://send?phone=&cPhone'
=ShellExecute(0, 'open', cmd,'', '', 1)
Wait "" Timeout 3
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
If lhwnd!= 0
SetForegroundWindow (lhwnd)
ShowWindow (lhwnd, 1)
ox = Createobject ( "Wscript.Shell" )
ox.sendKeys ("^{v}")
Sleep(2000)
ox.sendKeys ( '{ENTER}' )
Else
Messagebox ("Whatsapp no esta activado" )
Endif
Procedure image_to_clip
Declare Integer Sleep In kernel32 Integer
Declare Integer OpenClipboard In User32 Integer
Declare Integer CloseClipboard In User32
Declare Integer EmptyClipboard In User32
Declare Integer SetClipboardData In User32 Integer,Integer
Declare Integer LoadImage In WIN32API Integer,String,Integer,Integer,Integer,Integer
Declare Integer GetClipboardData In User32 Integer
Declare Integer GdipCreateBitmapFromHBITMAP In GDIPlus.Dll Integer, Integer, Integer @
Declare Integer GdipSaveImageToFile In GDIPlus.Dll Integer,String,String @,String @
Declare Long GdipCreateHBITMAPFromBitmap In GDIPlus.Dll Long nativeImage, Long @, Long
Declare Long GdipCreateBitmapFromFile In GDIPlus.Dll String FileName, Long @nBitmap
Declare Long GdipCreateBitmapFromFile In GDIPlus.Dll String FileName, Long @nBitmap
Declare Long CopyImage In WIN32API Long hImage, Long, Long, Long , Long
#Define CF_BITMAP 2
#Define CF_DIB 8
#Define IMAGE_BITMAP 0
#Define LR_LOADFROMFILE 16
#Define LR_MONOCHROME 0x00000001
Local xpict
m.xpict=Getpict()
If !Empty(m.xpict)
m.ext=Proper(Justext(m.xpict))
If !Inlist(m.ext,"Png","Jpg","Bmp","Gif","Tif")
Messagebox('Por favor, seleccione solo imagenes.',0+16,'Whatsapp',3000)
Return
Endif
Else
Messagebox('Imagen no seleccionada.',0+64,'Whatsapp',3000)
Return
Endif
Local m.oo
m.oo=Newobject("image")
m.oo.Picture=m.xpict
Local lnWidth,lnHeight
lnWidth=m.oo.Width
lnHeight=m.oo.Height
nBitmap=0
hbm=0
GdipCreateBitmapFromFile(Strconv(m.xpict+0h00,5),@nBitmap)
GdipCreateHBITMAPFromBitmap(nBitmap,@hbm,0)
lhBmp = CopyImage(hbm, 0, m.lnWidth, m.lnHeight,0)
If OpenClipboard(0)!= 0
EmptyClipboard()
SetClipboardData(CF_BITMAP, lhBmp)
CloseClipboard()
Endif
Endproc
*------------------------------------------------------------
* 4- Como enviar mensajes masivos
*------------------------------------------------------------
* Primero crearemos algunos datos
** Declare Sleep
Declare Sleep In kernel32 Integer
Create Cursor clients(mobile c(12))
Insert Into clients Values('923000000000') &&Cambiar el número incluyendo el código del país pero sin el +
Insert Into clients Values('923000000000') &&Cambiar el número incluyendo el código del país pero sin el +
Insert Into clients Values('923000000000') &&Cambiar el número incluyendo el código del país pero sin el +
Go Top
lnMessNum = 0
Scan
Scatter Memv
cPhone=Alltrim(m.mobile)
cMessage=Alltrim('Este es un mensaje de promoción de ventas ') + Alltrim(Str(lnMessNum))
lnMessNum = lnMessNum + 1
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)
Sleep(2000) && 2 segundo de intervalo en cada mensaje.
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
If lhwnd!= 0
SetForegroundWindow (lhwnd)
ShowWindow (lhwnd, 1)
ox = Createobject ( "Wscript.Shell" )
Sleep(2000)
ox.sendKeys ( '{ENTER}' )
Else
Messagebox ( "Whatsapp is not activated!" )
Endif
Endscan
*------------------------------------------------------------
* 5- Como enviar el contenido de un archivo de texto
*------------------------------------------------------------
cFile=Getfile('txt')
_Cliptext=Filetostr(cFile)
** Declare Sleep
Declare Sleep In kernel32 Integer
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
cPhone=[923000000000] &&Cambiar el número incluyendo el código del país pero sin el +
cmd='whatsapp://send?phone=&cPhone'
=ShellExecute(0, 'open', cmd,'', '', 1)
Wait "" Timeout 3
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
If lhwnd!= 0
SetForegroundWindow (lhwnd)
ShowWindow (lhwnd, 1)
ox = Createobject ( "Wscript.Shell" )
ox.sendKeys ("^{v}")
Sleep(2000)
ox.sendKeys ( '{ENTER}' )
Else
Messagebox ( "Whatsapp no esta activado." )
Endif
*-********************************************
Hay otros dos ejemplos pero no los he probrado.
--
Visita el 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/40a2652b-edc6-405f-a861-4155d1ea360bn%40googlegroups.com.
--
Visita el 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/4d3a1c88-06ac-4d0c-a733-c936c9b286dbn%40googlegroups.com.
&& herramienta para las pruebas!
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/ONB-OlHq0HI/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, 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/CAMUm0dm_Fp38s%3DYkPkLG%2B28k97H-pJRsmNOKfTLNHhurn86HZA%40mail.gmail.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/013b01d6c122%242e769320%248b63b960%24%40gmail.com.
Hola, cuando compras un kits es porque ya tienes clientes listos para funcionar, normalmente todos los clientes han comprado licencias cuando ya tienen realizada todas las pruebas!
Por favor usar la demo y realiza las pruebas, cuando ya tenga usted listo un cliente, compras la licencia, y se activa en poco tiempo!
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMUm0d%3DBBEVPQDkahMFjLEJZ7iwiyWh%2BQ805tSMq6S0ZET1d9w%40mail.gmail.com.
Le licencia es por un año a partir de la compra, se renueva cada año,
Los tiempos de activación pues son considerados en rango para activar…
Saludos cordiales…
Cualquier duda estamos al https://wa.me/593984958499
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMUm0d%3DBBEVPQDkahMFjLEJZ7iwiyWh%2BQ805tSMq6S0ZET1d9w%40mail.gmail.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMUm0d%3DBBEVPQDkahMFjLEJZ7iwiyWh%2BQ805tSMq6S0ZET1d9w%40mail.gmail.com.
--
Visita el 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/40a2652b-edc6-405f-a861-4155d1ea360bn%40googlegroups.com.