Page 2 of 2

Re: Enviar SMS via Web...

Posted: Mon Sep 14, 2009 1:06 pm
by Andrés González
Hola, ya he conseguido enviar los mensajes SMS desde la paguina de Vodafone, os dejo el codigo por si alguien quiere contratar una cuenta y enviar los mensajes:

Code: Select all

nction SendSMSI()

   local oWnd, oActiveX

   DEFINE WINDOW oWnd;
          TITLE "Ejemplos de Envio de SMS via Web de Vodafone" ;
          MENU  ViaWebMenu()

   @ 0, 0 ACTIVEX oActiveX PROGID "Shell.Explorer" OF oWnd

   oWnd:oClient = oActiveX

   ACTIVATE WINDOW oWnd MAXIMIZED;
      ON INIT oActiveX:Do( "Navigate2",;
                  "http://mensaredempresas.vodafone.es/innerUser/servlet/SendMssgServlet",,,;
                  GetPostData( "enterprise=miempresa&login=milogin&password=mipas&to=61000000&msgText=Hola amigo" ),;
                   "Content-Type: application/x-www-form-urlencoded" + CRLF )
    return nil
Puedes hacer acuse de recibo e incluso mandarlo como mensaje emergente.

Con google Chrome he podido ver los fuentes de la pagina y aparece el directorio al que manda la pagina y por lo tanto con cambiar ese dato de http me ha bastado aunque eso no es transparente para el usuario.

Antonio ahora como hago para que el activex se ejecute sin mostrar los datos en la ventana?

PD.: Gracias Pedro pero como tenemos cuenta en vodafone, he querido hacer el ejemplo con ellos.

Re: Enviar SMS via Web...

Posted: Mon Sep 14, 2009 2:49 pm
by Antonio Linares
Andrés,

Muy bien, bravo! :-)

Si no quieres que se vea el ActiveX prueba a ocultarlo con oActiveX:Hide()

o puedes ocultar la propia ventana en donde está:
oWnd:Hide()

Re: Enviar SMS via Web...

Posted: Tue Sep 15, 2009 6:28 am
by Andrés González
Gracias Antonio.,

Re: Enviar SMS via Web...

Posted: Tue Sep 15, 2009 10:09 am
by Andrés González
Antonio esto abre unas posibilidades inmensas. He leido que aparte de la posibilidad del POST esta el GET, eso que signfica que puedo tambien coger el estado de una variable del servidor y integrarla en nuestros programas ? . Eso seria muy bueno sobre todo en aquellas variables dinamicas. No tengo posibilidad de contactar con Davide Guolo puesto que su perfil no tiene ni email ni messenger. Si alguien lo conoce le puede pasar mi email o messenger para poder hablar con el.

Re: Enviar SMS via Web...

Posted: Tue Sep 15, 2009 12:25 pm
by Antonio Linares
Andrés,

Al estar usando el objeto Internet Explorer como ActiveX, puedes acceder a toda su información. Es decir, puedes obtener todo lo que necesites :-)

Por ejemplo, para obtener el código HTML recibido:
MsgInfo( oActiveX:Document:Body:InnerHtml )

Para obtener todas las direcciones de las imágenes mostradas:

Code: Select all

   n := 0

   while ! Empty( oActiveX : Document:Images[ n ] )
      MsgInfo( oActiveX : Document:Images[ n ]:src )  
      n++
   end
 
Solo tienes que revisar la documentación de Microsoft del ActiveX del Internet Explorer y puedes obtener un montón de cosas :-)
http://msdn.microsoft.com/en-us/library ... S.85).aspx

Re: Enviar SMS via Web...

Posted: Wed Sep 16, 2009 12:05 pm
by Andrés González
Mil gracias Antonio...

Re: Enviar SMS via Web...

Posted: Thu Sep 24, 2009 11:06 am
by Andrés González
Es posible cargar una ActiveX sin asignárselo a ninguna ventana. Igual digo alguna tontería pero el código que dejo a continuación va bien pero me marca un error cuando salgo del programa. Me imagino que quedan las dos ventanas en funcionamiento (ya que las escondo con oWnd:Hide()) y no se como cargarme esos dos procesos ventana, que están en local. El syswait lo tengo que poner puesto que el segundo proceso se adelanta al primero.

Code: Select all

function Logear()

   local oWnd, oActiveX
   //? "Entro en Login"

   DEFINE WINDOW oWnd;
          TITLE "Ejemplos de Envio de SMS via Web de Vodafone" 

   @ 0, 0 ACTIVEX oActiveX PROGID "Shell.Explorer" OF oWnd

   oWnd:oClient = oActiveX
                   
 

   ACTIVATE WINDOW oWnd MAXIMIZED;
      ON INIT ( oActiveX:Do( "Navigate2",;
                             "http://mensaredempresas.vodafone.es/servlet/AuthenUserServlet",,,;
                             GetPostData( "enterprise=miempresa&login=milogin&password=mipassword" ),;
                             "Content-Type: application/x-www-form-urlencoded" + CRLF ), oWnd:Hide())
                             



return nil


function Send()

   local oWnd,  oActiveX
   //? "Envio mensaje"
   
   DEFINE WINDOW oWnd;
          TITLE "Ejemplos de Envio de SMS via Web de Vodafone" 

   @ 0, 0 ACTIVEX oActiveX PROGID "Shell.Explorer" OF oWnd

   oWnd:oClient = oActiveX
                   
 

   ACTIVATE WINDOW oWnd MAXIMIZED; 
                        ON INIT ( oActiveX:Do( "Navigate2",;
                                               "http://mensaredempresas.vodafone.es/innerUser/servlet/SendMssgServlet",,,;
                                                GetPostData( "&to=610273293&msgText=Hola amigo" ),;
                                               "Content-Type: application/x-www-form-urlencoded" + CRLF ), oWnd:End())
                                                      
      
                 
                  

return nil


Function SendSMS()
         Logear()
         SysWait(3)
         Send()
         
         Return nil

Antonio se te ocurre algo mas elegante que esto. No estoy muy metido en ActiveX y lo que he empleado hasta ahora son tus ejemplos.

Re: Enviar SMS via Web...

Posted: Thu Sep 24, 2009 11:12 am
by Andrés González
Antonio cuando pongo los dos puntos ":" con la etiqueta code, incluso desde teclado me _ por ":" a que es debido.

Code: Select all

:

oActoveX:Do()
Bueno ahora veo que va bien, solo es cuando importo codigo del MultiEdit. Pero lo raro es que aunque lo intente modificar desde teclado me sigue saliendo lo mismo.

Re: Enviar SMS via Web...

Posted: Fri Sep 25, 2009 6:20 am
by Andrés González
No te molestes Antonio intentaba ocultar la ventana pero si lo hacemos con ocultar el activex funciona:

Code: Select all

function EnviarSMS()

Local oWnd, oActiveX

  oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
  oActiveX:Do( "Navigate2",;
                             "http://mensaredempresas.vodafone.es/servlet/AuthenUserServlet",,,;
                             GetPostData( "enterprise=miempresa&login=milogin&password=mipasword" ),;
                             "Content-Type: application/x-www-form-urlencoded" + CRLF )
  oActiveX:Hide()                         
   SysWait(3)   
   
  oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
  oActiveX:Do( "Navigate2",;
                                               "http://mensaredempresas.vodafone.es/innerUser/servlet/SendMssgServlet",,,;
                                                GetPostData( "&to=610273293&msgText=Hola amigo" ),;
                                               "Content-Type: application/x-www-form-urlencoded" + CRLF )  
   oActiveX:Hide()                                              
                                               
return nil  

Re: Enviar SMS via Web...

Posted: Fri Sep 25, 2009 11:54 pm
by Antonio Linares
Andrés,

Bien :-)

El ":" es un fallo del pluggin de resaltador de sintaxis de estos foros.

Re: Enviar SMS via Web...

Posted: Sun Sep 27, 2009 3:39 pm
by Andrés González
Gracias Antonio. Estoy intentando poner lo de los SMS en un versión antigua 08.07 y me de problemas pero aun no he podido identificar a que se debe pero todo biene de cuando defino el Activex, Me da el error de ejecución en la linea:

Code: Select all

  oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
Lo cual no es logico pero no se a que se debe, te cuento cosas cuando lo identifique.

Re: Enviar SMS via Web...

Posted: Sun Sep 27, 2009 3:45 pm
by Andrés González
Antonio fijate de donde viene el problema:

oActiveX:Do()
oActoveX:Do()

Code: Select all

oActiveX:Do()
oActoveX:Do()
Me di cuenta puesto que en el mensaje anterior puse un 'o' en vez de una 'i' y pense que funcionaba.