5
我試圖從IE的地址欄中提取URL。 (Windows 7上的IE 8)使用以下C#代碼。訪問被拒絕 - 試圖從地址欄的句柄獲取url(文本)
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;
}
GetWindowText調用返回「訪問被拒絕」異常。在以管理員權限運行應用程序時,它會引發「系統找不到指定的文件」。
任何想法?
謝謝! SHDocVw是一個很好的參考!然而,我認爲我必須堅持使用GetText方法的原因是因爲我需要在Windows的大多數流行瀏覽器中做同樣的事情 - Chrome,Firefox,Safari,Opera。我的計劃是爲每個瀏覽器編寫一個自定義方法,以從其地址欄句柄中提取網址。 – Sameet 2010-07-20 10:22:08