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 방법론을 고수해야한다고 생각하는 이유는 Chrome, Firefox, Safari, Opera와 같은 대부분의 Windows 용 브라우저에서 동일한 작업을 수행해야하기 때문입니다. 내 브라우저의 주소 표시 줄 핸들에서 URL을 추출하기 위해 각 브라우저에 대한 사용자 지정 메서드를 작성했습니다. – Sameet