_IEPropertyGet

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

_IEPropertyGet

Mensaje por joaquin »

¿Cómo se podría pasar como variable a _IECreate, la url actual de la ventana activa de IE ? :smt017
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
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: _IEPropertyGet

Mensaje 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.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
markus
Mensajes: 28
Registrado: 02 Abr 2010, 21:28

Re: _IEPropertyGet

Mensaje 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.
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

Re: _IEPropertyGet

Mensaje 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 :smt002
Responder