获取当前 IE 地址栏中的 URL


分 IE7 及 IE6 这两种情况 .

在 IE6 中这样获取地址栏中的 URL, 其中 strAdd 即为所求:

HWND hIE = NULL;
HWND hWorker = NULL;
HWND hBar = NULL;
HWND hComboBox = NULL;
TCHAR szAddr[MAX_PATH] = { 0 };

hIE = ::FindWindow(_T("IEFrame"), NULL);

if (hIE)
{
	hWorker = ::FindWindowEx(hIE, 0, _T("WorkerW"), NULL);
}
if (hWorker)
{
	hBar = ::FindWindowEx(hWorker, 0, _T("ReBarWindow32"), NULL);
}
if (hBar)
{
	HWND hComboBox = ::FindWindowEx(hBar, 0, _T("ComboBoxEx32"), NULL);
	::SendMessage(hComboBox, WM_GETTEXT, MAX_PATH, (LPARAM)szAddr);
}


在 IE7 中这样获取地址栏中的 URL, 其中 strAdd 即为所求:

HWND hIE = NULL;
HWND hWorker = NULL;
HWND hBar = NULL;
HWND hComboBox = NULL;
TCHAR szAddr[MAX_PATH] = { 0 };

hIE = ::FindWindow(_T("IEFrame"), NULL);
if (hIE)
{
	hWorker = ::FindWindowEx(hIE, 0, _T("WorkerW"), NULL);
}
if (hWorker)
{
	hBar = ::FindWindowEx(hWorker, 0, _T("ReBarWindow32"), NULL);
}
if (hBar)
{
	HWND hAddress = ::FindWindowEx(hBar, 0, _T("Address Band Root"), NULL);
	HWND hComboBox = ::FindWindowEx(hAddress, 0, _T("ComboBoxEx32"), NULL);
	::SendMessage(hComboBox, WM_GETTEXT, 255, (LPARAM)strAdd);
}


你可能感兴趣的:(获取当前 IE 地址栏中的 URL)