Я написал простую программу на C ++, которая открывает тестовую страницу в окне IE, используя IWebBrowser2 с моим HTML-заголовком (Referer, UserAgent). Все отлично работает Функции PHP на тестовой странице показывают измененные заголовки. Однако Javascript (document.referrer, navigator.userAgent) этого не делает. Как установить referer и useragent для Javascript в окне IWebBrowser2 IE?
Это моя программа:
#include <windows.h>
#include <Exdisp.h>
int main(){
if (SUCCEEDED(OleInitialize(NULL))){
IWebBrowser2* wb;
CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&wb);
if(wb){
VARIANT vempty;
VariantInit(&vempty);
VARIANT vheaders = { 0 };
BSTR headers = SysAllocString( L"Referer: http://example.com\r\nUser-Agent: xyz\r\n" );
V_VT( &vheaders ) = VT_BSTR;
V_BSTR( &vheaders ) = headers;
BSTR url = SysAllocString(L"http://localhost/test2.php");
HRESULT hr = wb->Navigate(url, &vempty, &vempty, &vempty, &vheaders);
if(SUCCEEDED(hr)){
wb->put_Visible(VARIANT_TRUE);
}
else{
wb->Quit();
}
SysFreeString(url);
SysFreeString(headers);
wb->Release();
}
OleUninitialize();
}
system("PAUSE");
}
Задача ещё не решена.
Других решений пока нет …