Tôi đang cố gắng trích xuất URL từ thanh địa chỉ của IE. (IE 8 trên Windows 7) sử dụng mã C# sau.Truy cập bị từ chối - khi cố gắng lấy url (văn bản) từ tay cầm của thanh địa chỉ
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;
}
Cuộc gọi GetWindowText trả về ngoại lệ "Truy cập bị từ chối". Khi chạy ứng dụng có đặc quyền quản trị, nó sẽ ném "Hệ thống không thể tìm thấy tệp được chỉ định".
Bất kỳ ý tưởng nào?
Cảm ơn! SHDocVw là một tài liệu tham khảo tuyệt vời! Tuy nhiên, lý do tôi nghĩ tôi phải tuân theo phương pháp GetText là vì tôi cần phải làm điều tương tự trong hầu hết các trình duyệt phổ biến cho Windows - Chrome, Firefox, Safari, Opera. Kế hoạch của tôi là viết một phương thức tùy chỉnh cho mỗi trình duyệt để trích xuất url từ thanh địa chỉ của nó. – Sameet