Página 1 de 1
_IEPropertyGet
Publicado: 17 Abr 2010, 11:22
por joaquin
¿Cómo se podría pasar como variable a _IECreate, la url actual de la ventana activa de IE ?
Probé lo siguiente pero retorna 0.
Código: Seleccionar todo
#include <IE.au3>
$oIE = ObjGet("","InternetExplorer.Application")
$tr = _IEPropertyGet ($oIE, "locationurl")
_IECreate ("http://translate.google.com/translate?js=y&prev=_t&hl=es&ie=UTF-8&layout=2&eotf=1&u="&$tr&"&sl=en&tl=es")
Saludos
Re: _IEPropertyGet
Publicado: 17 Abr 2010, 14:38
por Chefito
Mira este post que puede que te ayude a resolver tu problema:
http://www.emesn.com/autoitforum/viewto ... f=3&t=2010
Para saber el título de la ventana activa puedes poner WinGetTitle("[Active]") o el handle WinGetHandle("[Active]"). Sabiendo esto es facil ver si es una ventana IE o no. Se puede hacer de varias formas. Por el título, por su clase, por ataque y error con _IEAttach, etc.
Intenta algo con todo lo que te comento.
Saludos.
Re: _IEPropertyGet
Publicado: 17 Abr 2010, 22:55
por markus
Hola buenas tardes Joaquin.
Fijate, en el siguiente ejemplo se ilustra una manera de esperar a que una ventana en específico este activa. Para el ejemplo utilizare la web de Google.
Código: Seleccionar todo
#include <IE.au3>
while 1
sleep(1000) ;cada segundo chequeo si existe la ventana con el titulo "Google"
if Winactive("Google") then
$oIE = _IEAttach ("google") ;Si existe, la pesco para poder tener control sobre sus parámetros
$URL = _IEPropertyGet ($oIE, "locationurl") ; En la variable $URL almaceno la url contenida en $oIE
MsgBox(0, "La URL encontrada es: ", $URL) ;Muestro un Msgbox con la url.
EndIf
WEnd
Fijate que utilizando el While infinitamente tu puedes colocar el script a la espera de esa ventana en especifico.
Ahora bien, es posible hecharle un vistazo a todas las ventanas de Internet explorer que tengas abiertas y capturar su url para posteriormente mostrarlas através de un Msgbox. El script fue suministrado originalmente por Chefito.
Código: Seleccionar todo
#include <IE.au3>
$instancia=0
While 1
$instancia+=1
$oIE = _IEAttach ("Windows Internet Explorer","WindowTitle",$instancia) ;miro las ventanas de IE por el título de ventana
If @error Then ExitLoop ;si hay un error en el ataque a las ventanas IE salgo del bucle. Lo utilizo para finalizar el bucle cuando acaban las ventanas IE.
$direccion=_IEPropertyGet ($oIE, "locationurl") ;almaceno en la variable la dirección url.
MsgBox(0,"URL encontrada",$direccion) ;muestra la caja de texto con la url.
WEnd
Si deseas ver el post te indico el link.
http://www.emesn.com/autoitforum/viewto ... 7919#p7919
Espero despejes tus dudas, Salu2.
Re: _IEPropertyGet
Publicado: 18 Abr 2010, 08:58
por joaquin
Gracias Chefito y markus por las sugerencias.
Había intentado solucionarlo con _IEAttach, pero no resolvía el tema de las instancias, ya que tenia que servir para cualquiera de las ventanas activas de IE.
Finalmente con WinGetTitle paso el título de la ventana activa a _IEAttach y obtengo la url con _IEPropertyGet, que la puedo pasar a _IECreate.
El script es lanzado desde un botón integrado en el IE, y tiene la función de traducir la página que éste visitando.
Código: Seleccionar todo
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
$title = WinGetTitle("Windows Internet Explorer", "")
$oIE = _IEAttach ($title,"WindowTitle")
$url = _IEPropertyGet ($oIE, "locationurl")
$tr = _IECreate ("http://translate.google.com/translate?js=y&prev=_t&hl=es&ie=UTF-8&layout=2&eotf=1&u="&$url&"&sl=en&tl=es")
Exit
Saludos