Estoy intentando extraer la URL de la barra de direcciones de IE. (IE 8 en Windows 7) usando el siguiente código C#.Acceso denegado - cuando se trata de obtener la dirección URL (texto) del mango de la barra de direcciones
static string GetUrlFromIE()
{
IntPtr windowHandle = APIFuncs.getForegroundWindow();
IntPtr childHandle;
String strUrlToReturn = "";
//try to get a handle to IE's toolbar container
childHandle = APIFuncs.FindWindowEx(windowHandle, IntPtr.Zero, "WorkerW", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
//get a handle to address bar
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "ReBarWindow32", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "Address Band Root", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "Edit", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
strUrlToReturn = new string((char)0, 256);
GetWindowText(hwnd, strUrlToReturn , strUrlToReturn.Length);
}
}
}
}
return strUrlToReturn;
}
La llamada a GetWindowText devuelve una excepción de "Acceso denegado". Al ejecutar la aplicación con privilegios de administrador, arroja un "Sistema no puede encontrar el archivo especificado".
¿Alguna idea?
Gracias! ¡SHDocVw es una referencia brillante! Sin embargo, la razón por la que creo que tendré que apegarme a la metodología GetText es porque necesito hacer lo mismo en la mayoría de los navegadores populares para Windows: Chrome, Firefox, Safari, Opera. Mi plan era escribir un método personalizado para cada navegador para extraer la URL de su barra de direcciones. – Sameet