Página 1 de 1

Generar un registro de conexiones con _IECreate

Publicado: 06 Abr 2011, 15:02
por clopezp
Sres.,
Soy nuevo ocupando esta maravollosa herramienta y de ehcho lo primero que me encomendaron es algo sencillo, generar la revision de paginas web de forma permanente....
Asi:
; --- google ---
$oIE = _IECreate ("http://www.google.com/")
Sleep(5000)
send("!{F4}")
; --- emol ---
$oIE = _IECreate ("http://www.emol.com/")
Sleep(5000)
send("!{F4}")
........ y asi varias mas


Pero lo que necesito realmente es poder generar algun tipo de registro con el historial de conexiones y si en algun momento en alguna de ellas no fue posible conectarse......
Espero me puedan apoyar o dar algun tips para resolver este desafio...muchas gracias.

Re: Generar un registro de conexiones con _IECreate

Publicado: 06 Abr 2011, 15:40
por BasicOs
Hola,
solo tienes que hacer un if sobre el error de _IEcreate()
Aquí los códigos de error de este:
En una sola linea el código sería:

Código: Seleccionar todo

If not @Error=0 the _FileWriteLog()
pero si quieres determinar el error:

Código: Seleccionar todo

@Error: 0 ($_IEStatus_Success) = No Error 
 1 ($_IEStatus_GeneralError) = General Error 
 3 ($_IEStatus_InvalidDataType) = Invalid Data Type 
 4 ($_IEStatus_InvalidObjectType) = Invalid Object Type 
 6 ($_IEStatus_LoadWaitTimeout) = Load Wait Timeout 
 8 ($_IEStatus_AccessIsDenied) = Access Is Denied 
 9 ($_IEStatus_ClientDisconnected) = Client Disconnected 
Lo puedes añadir al log.
Luego hay una función que te sirve para crear el log desde un string que le envies y un nombre de archivo destino es _FileWriteLog()
Salu22:)

Re: Generar un registro de conexiones con _IECreate

Publicado: 06 Abr 2011, 17:12
por clopezp
Estimado, muchas gracias por tu respuesta....segui los pasos de acuerdo a tus instrucciones pero la verdad es que no me es posible generar notificaciones sobre el proceso de revision de urls.......l codigo quedo asi, quizas no este correcto.....por favor tus comentarios y gracias nuevamente....

#include <Servicios Pruebas.au3>
;$sum = 0
While 1 ;use infinite loop since ExitLoop will get called
; --- google ---
$oIE = _IECreate ("http://www.google.com/")
Sleep(5000)
send("!{F4}")
; --- sii ---
$oIE = _IECreate ("http://www.sii.cl/")
Sleep(5000)
send("!{F4}")
; --- Notificación ---
; Error=0($_IEStatus_Success) = No Error
; Error=9($_IEStatus_ClientDisconnected) = Client Disconnected
If not
@Error=0 _FileWriteLog ("D:\Aplic\Autoit\logit.txt")
@Error=9 _FileWriteLog ("D:\Aplic\Autoit\logit.txt")

WEnd

Re: Generar un registro de conexiones con _IECreate

Publicado: 06 Abr 2011, 17:38
por BasicOs
clopezp escribió:-
yo crearía un función ya que el @Error tienes que probarlo despues de cada intento de apertura de página y no al final.
Puedes mirar la sintaxis de If then Endif en la ayuda:

Código: Seleccionar todo

If not  @Error=0 then _FileWriteLog ("D:\Aplic\Autoit\logit.txt")
La función puede ser algo en un Alfa borrador planteada como:
Dim $numpaginas
$numdepaginas=StringSplit("www.quepaginacompruebo.com,otra.com,mas.com")
For $i=1 to $numdepaginas[0]
AbrirPáginayComprobar($numdepaginas[$i])
sleep(60000) ; cada 60 segundos
Next
; funciones
Func AbrirPáginayComprobar($quepaginacompruebo)
$oIE = _IECreate ($quepaginacompruebo)
Sleep(5000)
send("!{F4}")
If not @Error=0 then _FileWriteLog ("D:\Aplic\Autoit\logit.txt") ; Comprueba la sintaxis de _FileWriteLog() ya que los parámetros no son correctos, en la ayuda, le envias $quepaginacompruebo
EndFunc
Si no quieres usar el For Next, puedes usar simplemente una lista de
AbrirPáginayComprobar("cadapagina.com")
AbrirPáginayComprobar("cadapagina.com")
AbrirPáginayComprobar("cadapagina.com")
Salu22:)
Editado General.

Re: Generar un registro de conexiones con _IECreate

Publicado: 06 Abr 2011, 20:16
por clopezp
Genere una funcion de acuerdo a tus indicaciones, pero tengo una duda con respecto a "AbrirPáginayComprobar" lo cual lo genere con un "_ArrayToString" pero al parecer no es la funcion correcta....
Estoy probando solo para abrir dos paginas, mira:

#include <Servicios Pruebas.au3>
Dim $numpaginas = 2
$numpaginas = StringSplit("http://www.google.com,http://www.sii.cl")
For $i=1 To $numpaginas [2]
_ArrayToString($2[$i])
Sleep(5000)

Next
; funciones
Func _ArrayToString($"http://www.google.com")
$oIE = _IECreate ("http://www.google.com")
Sleep(5000)
send("!{F4}")
if Not @Error=0 then _FileWriteLog (@ScriptDir & "D:\Aplic\Autoit\logit.Log", "pagina ok")
$"http://www.google.com"
EndFunc

; la otra pagina

For $i=1 To $paginas [2]
_ArrayToString($"http://www.sii.cl"[$i])
Sleep(5000)
;send("!{F4}")
Next
; funciones
Func _ArrayToString($"http://www.sii.cl")
$oIE = _IECreate ("http://www.sii.cl")
Sleep(5000)
send("!{F4}")
if Not @Error=0 then _FileWriteLog (@ScriptDir & "D:\Aplic\Autoit\logit.Log", "pagina ok")
$"http://www.sii.cl"
EndFunc

Quedo atento a tus comentarios ... muchas gracias.

Re: Generar un registro de conexiones con _IECreate

Publicado: 07 Abr 2011, 03:40
por BasicOs
Creo que debes repasar
el concepto de función,
el de nomenclatura de variables y tipos de variables,
el de uso de variables locales y globales y/o en funciones, está en la ayuda en español, y en unos minutos lo entenderás facilmente. :smt033 :smt048 :smt048 :smt046

Lo del For Next lo puedes usar si son muchas páginas y para que se quede el código más limpio guardando todas las páginas en una variable inicial al principio. Sin usar For Next que es igual que usandolo al final:

Código: Seleccionar todo

AbrirPáginayComprobar("cadapagina1.com")
AbrirPáginayComprobar("cadapagina2.com")
AbrirPáginayComprobar("cadapagina3.com")
; funciones
Func AbrirPáginayComprobar($quepaginacompruebo)
  $oIE = _IECreate ($quepaginacompruebo)
  Sleep(5000)
  send("!{F4}")
  if Not @Error=0 then _FileWriteLog (@ScriptDir & "D:\Aplic\Autoit\logit.Log", "pagina ok")
EndFunc
Salu22:)