Ich versuche, die URL aus der Adressleiste von IE zu extrahieren. (IE 8 unter Windows 7) mit dem folgenden C# -Code.Zugriff verweigert - beim Versuch, die URL (Text) aus der Adressleiste
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;
}
Der GetWindowText Aufruf gibt eine "Zugriff verweigert" Ausnahme. Wenn die App mit Administratorrechten ausgeführt wird, wird ein "System kann die angegebene Datei nicht finden" ausgelöst.
Irgendwelche Ideen?
Dank! SHDocVw ist eine brillante Referenz! Ich denke jedoch, dass ich mich an die GetText-Methode halten muss, weil ich in den meisten gängigen Browsern für Windows - Chrome, Firefox, Safari, Opera - dasselbe tun muss. Mein Plan war, eine benutzerdefinierte Methode für jeden Browser zu schreiben, um die URL aus der Adressleiste zu extrahieren. – Sameet