envio de pdf por wa con fvp9

73 views
Skip to first unread message

Carlos G. G. Camacho López

unread,
Apr 8, 2026, 2:28:15 AM (6 days ago) Apr 8
to Comunidad de Visual Foxpro en Español
*!* pcText="SU FACTURA"
*!* pcDocument="C:\SIAT_XlsX\fact_000.pdf"
pcPhone="" && SE AÑADE EL NUMERO DE DESTINO  en el form TOWA  deben crear para que reciba el nro de celular en formato text
pcText="SU FACTURA"
pcDocument="" && SE OBTIENE DE LA tu CARPETA DE PDFs
vWA_ok=.f.

DO FORM TOWA &&  deben crear un formulario que reciba el nro de celular en formato text
IF !vWA_ok
RETURN
ENDIF
pcDocument = vbasepath+vcodemp+"\"+vlastyear+"\Fox_to_pdf\Fact_"+ALLTRIM(DTOS(kardexmae.esfecha))+"-"+ALLTRIM(PADL(kardexmae.nrofact, paramgen.logitud_nf, "0"))+".pdf"
*= wafoxpdf (lcPhone, lcText, lcDocument)
 
 
*Function wafoxpdf
*
* Creada por Manish Swami
* https://www.facebook.com/groups/118032825529669/user/1398167165/
* Ejemplo:
* https://www.facebook.com/groups/118032825529669/permalink/916852342314376/
* SendKeys de Microsoft
* https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/sendkeys-statement
* ShellExecute
* https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea
* Publicación 19/03/2022
* Ajustes 19/03/2022
*
  *  Parameters pcPhone, pcText, pcDocument
    Local lhwnd, llResult, pcOldValue
    pcOldValue = _Cliptext
    _Cliptext = pcDocument
    Declare Sleep In kernel32 Integer
    Declare Integer FindWindow In WIN32API String , String
    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
 
    lhwnd = FindWindow(0, "WhatsApp")                                 && Busca la ventana WhatsApp y devulve su puntero
    If lhwnd # 0                                                         && 0 si no fue hallada
        oKey = Createobject("Wscript.Shell" )                         && Crea el objeto para usar el metodo SENDKEYS
        lcCommand = "whatsapp://send?phone=" + pcPhone             && Abro el canal de CHAT
        =ShellExecute(0, "open", lcCommand, "", "", 0)
        Sleep(5000)
*!*                Como no siempre se abre la ventana con el foco en la caja de texto
*!*                le envio un texto para poner el cursor en dicho objeto
        lcCommand = lcCommand + "&text=" + pcText
        =ShellExecute(0, "open", lcCommand, "", "", 0)                 && Envío el nuevo comando con el texto
       
        Sleep(500)
        oKey.sendkeys ("{ENTER}")
        Sleep(3000)
        oKey.sendkeys ("+{TAB}")                                       && Shift+TAB
        Sleep(500)
        oKey.sendkeys ("+{TAB}")                                       && Shift+TAB
        Sleep(500)
        oKey.sendkeys ("{ENTER}")
        Sleep(500)
        oKey.sendkeys ("{PGUP}")
        Sleep(500)
        oKey.sendkeys ("{ENTER}")
        Sleep(500)
        oKey.sendkeys ("^{v}")
        Sleep(3000)
        oKey.sendkeys ("{ENTER}")
        Sleep(3000)
        oKey.sendkeys ("{ENTER}")
        Sleep(2000)

*!*         oKey.sendkeys ("+{TAB}")                                       && Shift+TAB
*!*         Sleep(500)
*!*         oKey.sendkeys ("{ENTER}")
*!*         Sleep(500)
*!*         oKey.sendkeys ("{UP 2}")
*!*         Sleep(500)
*!*         oKey.sendkeys ("{ENTER}")
*!*         Sleep(500)
*!*         oKey.sendkeys ("^{v}")
*!*         Sleep(3000)
*!*         oKey.sendkeys ("{ENTER}")
*!*         Sleep(3000)
*!*         oKey.sendkeys ("{ENTER}")
*!*         Sleep(2000)
        ShowWindow (lhwnd, 11)                                && Fuerza al minimizado de la ventana
        oKey = Null
        llResult = .T.
    Else
        Messagebox ("Whatsapp no está disponible, abralo o instalelo")
        llResult = .F.
    Endif
    Clear Dlls "Sleep", "FindWindow", "ShowWindow", "ShellExecute"
    _Cliptext  = pcOldValue
    Return llResult
Reply all
Reply to author
Forward
0 new messages