Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CO6PR06MB7297F5DF07353AD7A3643932C5469%40CO6PR06MB7297.namprd06.prod.outlook.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMUm0dmKuAgVOEus%3Diyw1GHKL6KtpGDjBjK7-af%3DUTgeMs8Z8w%40mail.gmail.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAF7%3DQ57hrS_KAOhwqK8NSFTiR4AeiKVgXVSrHkgtHtLXOkQTjw%40mail.gmail.com.
Tras muchas pruebas he conseguido (al menos para la versión 2.2318.2.0 de Whatsapp y Windows 10 pro) que se manden los mensajes correctamente. Para ello he tenido que calcular los TABs para llegar al cuadro de texto donde se incluye el mensaje; previamente hay que cerrar el Whatsapp para el caso de que estuviera minimizado, porque si no da problemas y no envía el mensaje. Os pongo el código por si puede ayudaros:
destinatarios = '+XXXXXXXXXXX'
frase = 'Esta es una prueba de envío por Whatsapp'
comando='whatsapp://send?phone='+ALLTRIM(destinatarios)+'&text='
Declare Sleep In kernel32 Integer
Declare Integer FindWindow In WIN32API String , String
Declare Integer SetForegroundWindow In WIN32API Integer
DECLARE SetActiveWindow IN WIN32API ;
INTEGER nHandle
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
ox = CREATEOBJECT ( "Wscript.Shell" )
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
añado_tab = 'S'
IF lhwnd != 0
DECLARE INTEGER GetActiveWindow IN Win32API
DECLARE INTEGER GetWindow IN Win32API;
INTEGER hWnd,;
INTEGER nType
DECLARE INTEGER SendMessage IN Win32API ;
INTEGER hwnd,;
INTEGER uMsg,;
INTEGER wParam,;
INTEGER lParam
DECLARE INTEGER GetWindowText IN Win32API ;
INTEGER hWnd,;
STRING @cText,;
INTEGER nType
#DEFINE WM_CLOSE 0x0010
lcTitle = [Whatsapp]
hNext = GetActiveWindow() && Current app's window
* Iterate through the open windows
DO WHILE hNext # 0
cText = REPLICATE(CHR(0),80)
GetWindowText(hNext,@cText,80)&& Get window title
IF UPPER(ALLTRIM(lcTitle)) $ UPPER(cText)
* parameter text is present in window title
SendMessage(hNext,WM_CLOSE,0,0)
EXIT
ENDIF
hNext = GetWindow(hNext,2) && Next window
ENDDO
sleep(2000)
ENDIF
=ShellExecute(0, 'open', Comando,'', '', 1)
WAIT "" TIMEOUT 2
lt = "Whatsapp"
lhwnd = FindWindow (0, lt)
IF lhwnd != 0
ShowWindow(lhwnd,3) &&3 Max, 9 Restore, 11 o 6 Min, 0 Hide
SetForegroundWindow(lhwnd)
SetActiveWindow(lhwnd)
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
ox.sendKeys ( '{TAB}' )
Sleep(2000)
ox.sendKeys ( frase )
ox.sendKeys ( '{ENTER}' )
WAIT "" TIMEOUT 5
ox.sendkeys ( '%{F4}' )
ELSE
MESSAGEBOX ( "Whatsapp no activado!" )
ENDIF
--
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/aad87a3c-0700-4873-94b2-6c207cee156bn%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAF7%3DQ57hrS_KAOhwqK8NSFTiR4AeiKVgXVSrHkgtHtLXOkQTjw%40mail.gmail.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/a96d043f-7f80-49fd-90fd-37fedbb0c18en%40googlegroups.com.
Buenos días a todos
La solución para enviar información por whatsapp con las versiones de Windows lo solucione de la siguiente manera:
En Windows 10
Solo basta con actualizar las versiones del whatsapp.
En Windows 7 y 8
El enfoque del whatsapp cuando inicia siempre se pone en el recuadro de búsqueda y al enviar el mensaje no lo envía.
1. Porque no está el enfoque en el recuadro Escribe un mensaje aqui
2. Si lo envía posiblemente lo enviará al contacto que se encuentra en ese momento en el chat y no al contacto al que debe ser.
3. Si cerramos el whatsapp y enviamos un mensaje el tiempo en que abre y carga los chat’s en la nueva versión de whatsapp, es posible que no lo envíe y tengamos que enviarlo nuevamente.
Como solucione esto, así:
1.- Abro el whatsapp y lo minimizó
2.- Asigno a una variable el teléfono al que voy a mandar el mensaje, así como en otra variable el texto del mensaje.
3.- Envío el teléfono al clipbard y en whatsapp con el atajo control +n le indigo nuevo chat y pego el teléfono enviado al clupboard con el atajo control +n.
4.- Le doy un tiempo de espero para que lo busque y me lo muestre en la pantalla el contacto a enviar el mensaje.
5.- Una vez que tengo el chat del contacto adecuado envio al clipbard el texto del mensaje y lo pego en el recuadro de Escribir un mensaje aquí
6.- Oprimo un ENTER para evitar oprimir el botón de enviar.
Este sería el código.
Local lt, lhwnd, oShell
cPhone = &telefono
cMensaje = &mensaje
cmd='whatsapp://send?phone=&cPhone'
=ShellExecute(0, 'open', cmd,'', '', 1)
Wait "" Timeout 3
lt = "Whatsapp (Outdated)"
lhwnd = FindWindow (0, lt)
If lhwnd!= 0
SetForegroundWindow (lhwnd)
ShowWindow (lhwnd, 1)
ox = Createobject ( "Wscript.Shell" )
&& copia al clipboard el teléfono
oShell = CREATEOBJECT("WScript.Shell")
oShell .Run ("cmd /c echo " + CHR(34) + cPhone + CHR(34) + " | clip", .T.)
ox.sendKeys ("^{n}") && atajo de teclas para nuevo chat
ox.sendKeys ("^{v}") && pegar el telefono en el recuadro de nuevo chat y que busque el contacto
ox.sendKeys ( '{ENTER}' )
Sleep(2000)
&& copia al clipboard el mensaje
oShell = CREATEOBJECT("WScript.Shell")
oShell .Run ("cmd /c echo " + CHR(34) + cMensaje + CHR(34) + " | clip", .T.)
ox.sendKeys ("^{v}") && pegar el mensaje a enviar
ox.sendKeys ( '{ENTER}' )
ox.sendKeys ( '{ENTER}' ) && Para evitar oprimir enviar nuevamente.
Else
Messagebox ("Whatsapp is not activated!" )
Endif
Next
Saludos a todos desde Aguascalientes, México. y espero que esto les sirva en sus desarrollos
--
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/a01afb1a-6b0e-4de6-bd5a-a8a287392850n%40googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/9f8711a0-ba7e-49fe-b300-3ab128708b72n%40googlegroups.com.