Iniciar pagina web trasfiriendo informacion desde un form de vfp

1,130 views
Skip to first unread message

Roberto

unread,
May 19, 2015, 11:45:53 AM5/19/15
to mundovis...@googlegroups.com
Estimados:
Mi intención es abrir una pagina web desde vp9 sp2 transfiriendo un usuario y clave para acceder directamente
a la aplicación web y operar con ella.
encontré el siguiente código que modifique funciona con algunos inconvenientes.
Si alguien puede recomendar si el uso es correcto o existe una herramienta mejor para lograrlo.
Los inconvenientes son
Algunas veces da error 'oForm is not object'
y al click no lo toma.
Desde ya Muchas Gracias
*********************** CODIGO***********************

oIE = Createobject("InternetExplorer.Application")

oIE.Navigate(https://mipagina.com.ar)

Do While(oIE.Busy)

WAIT WINDOW 'INTENTANDO' nowait

DoEvents

EndDo

oIE.Visible = .T.

oDoc = oIE.Document

oForm = oDoc.forms[0]

oForm.item[0].value="usuario"

oForm.item[1].value="clave"

oForm.item[2].value=""

oform.item[3].click()&&   es el botón ingreso de la web

oForm.submit()

*****************************************************************************************************




Rick C. Hodgin

unread,
May 19, 2015, 1:01:21 PM5/19/15
to mundovis...@googlegroups.com
Un método se muestra a continuación. No estoy seguro de si es la mejor. :-)

Saludos cordiales,
Rick C. Hodgin

* Use API calls to simulate keystrokes
#DEFINE KEYUP    0x02
#DEFINE VK_CTRL  0x11
#DEFINE VK_TAB   0x09
#DEFINE VK_ENTER 0x0d

* Use Win32 keybd_event() function
DECLARE INTEGER keybd_event IN Win32API  INTEGER, INTEGER, INTEGER, INTEGER


**********
* Add the IE control to form
*****
    thisform.AddObject("ie", "olecontrol", "Shell.Explorer.2")
    thisform.ie.Left   = 0
    thisForm.ie.Top    = 0
    thisForm.ie.Width  = thisForm.Width
    thisForm.ie.Height = thisForm.Height
    thisForm.ie.navigate2("https://mipagina.com.ar")

    * Wait for it to fully load
    DO WHILE thisForm.ie.Busy
        DOEVENTS
    ENDDO
    DOEVENTS


**********
* Send keystrokes into ie's buffer
*****
**********
* To send a CTRL+F for example, use the sequence:
*    keybd_event(VK_CTRL, 0, 0, 0)
*    keybd_event(ASC("F"), 0, 0, 0)
*    keybd_event(VK_CTRL, 0, KEYUP, 0)
**********

**********
* Name
*****
    lcName = "name"
    FOR lnI = 1 TO LEN(lcName)
        keybd_event(ASC(SUBSTR(lcName, lnI, 1)), 0, 0, 0)
    NEXT


**********
* Send a TAB
*****
    keybd_event(VK_TAB, 0, 0, 0)


**********
* Password
*****
    lcPassword = "password"
    FOR lnI = 1 TO LEN(lcPassword)
        keybd_event(ASC(SUBSTR(lcPassword, lnI, 1)), 0, 0, 0)
    NEXT


**********
* Enter / Return key
*****
    keybd_event(VK_ENTER, 0, 0, 0)

Roberto

unread,
May 19, 2015, 3:37:27 PM5/19/15
to mundovis...@googlegroups.com
Amigo Rick muy agradecido por tu pronta respuesta
En un botón dentro de un form en el método click copie la rutina
me da un error en la línea

thisform.AddObject("ie", "olecontrol", "Shell.Explorer.2")

A member object with this name alrtedy exist ...

Disculpa, la verdad son mis primeras experiencias.

Gracias

Jean Pierre Adonis De La Cruz Garcia

unread,
May 19, 2015, 7:17:37 PM5/19/15
to mundovis...@googlegroups.com
Amigo a veces depende un poco de como esta escrito la pagina web, para poder usar algun codigo te voy a pasar los procesos de alguna pagina similar.
Por decir en Peru en la Pagina de la Sunat para ingresar directo a un acceso usamos asi.
Y pide usuario y contraseña para ingresar, y con el sgte proceso que he realizado agilizo dicho proceso...
**********
PUBLIC IE,IER, odoc,oform,xdni
IE=Createobject("InternetExplorer.Application")

ObjTexto ='Conectando ...'
Wait Window ObjTexto nowait
DO While IE.busy .or. IE.readystate#4
   WAIT WINDOW ObjTexto Time(0.1)
   ObjTexto= ObjTexto+'.'
ENDDO

ie.Visible=.t.
IE.Document.all.Item("ruc").Value="00000"
IE.Document.all.Item("usuario").Value="PRIVADO"
IE.Document.all.Item("clave").Value="secreto"
IE.Navigate ("javascript:login()")

***********

Quizas te salga error, por que estoy ingresando datos falsos, por logica sabes que no te puedo dar mis datos correctos, pero con eso es suficiente para que ingreses.

Roberto

unread,
May 19, 2015, 10:59:31 PM5/19/15
to mundovis...@googlegroups.com
Gracias Jean Pierre
Funciono bien, con el código de espera para la activación soluciono mi problema de error de objeto. Envió usuario y password, lo que no logre es hacer el LOGIN, no da error pero no accede a la pagina.Como dices, tendré que analizar la pagina web.
Si tienes información de InternetExplorer.Application me serviría para poder estudiar el tema.
Cualquier comentario es de mucha utilidad.
Saludos y Gracias

El martes, 19 de mayo de 2015, 12:45:53 (UTC-3), Roberto escribió:

Jean Pierre Adonis De La Cruz Garcia

unread,
May 20, 2015, 11:21:02 AM5/20/15
to mundovis...@googlegroups.com

Roberto

unread,
May 20, 2015, 12:25:35 PM5/20/15
to mundovis...@googlegroups.com
Gracias Jean ya estoy en marcha


El martes, 19 de mayo de 2015, 12:45:53 (UTC-3), Roberto escribió:

Roberto

unread,
May 26, 2015, 4:11:32 PM5/26/15
to mundovis...@googlegroups.com
Estimados inicio la web a traves de Internetexplorer.application, carga los datos en la web pero no realiza el submit.
 con IE11 con windows 8.1, en windows 7 o XP con IE8 o IE9 funciona OK.
 He buscado en la web y encuentro que la solución es incluir la web en 'configuración de vista de compatibilidad' la incluyo pero no soluciona el problema.
Agradecería algún comentario o si pudieron solucionar.
Muchas Gracias


El martes, 19 de mayo de 2015, 12:45:53 (UTC-3), Roberto escribió:

Alfonso Ramirez Diaz

unread,
May 26, 2015, 4:14:44 PM5/26/15
to mundovis...@googlegroups.com
Si la página donde se comprueba el usuario y contraseña es php es bastante sencillo

ejecutas una cadena como la siguiente:




--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--




Alfonso Ramirez Diaz
Gestpyme - Informática y Gestión
Fono: 055-833233
Móvil: 09-82239821

Reply all
Reply to author
Forward
0 new messages