Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

MS Internet Explorer User-Agent   Найти похожие ветки 

 
ga3   (2003-05-13 00:17) [0]

вопрос на засыпку: ребята, подскажите плиз, как в виндах можно сменить версию IE, например у меня стоит ИЕ5.5 а я хочу чтобы сервер думал что у меня стоит ИЕ6.0? такая вот проблемка


 
ga3   (2003-05-13 00:20) [1]

а еще лучше так: у меня на форме лежит TWebBrowser, я хочу чтобы при навигации можно было менять это самый юзер-агент. вот так вот:-) помогите плиз, MSDN молчит на эту тему как рыба об лед. если можно примерчик.


 
ga3   (2003-05-14 16:41) [2]

ну блин че никто так и не знает как эту напасть сделать?


 
Ihor Osov'yak   (2003-05-14 23:33) [3]

Два варианта:

1. http://www.euromind.com/iedelphi, property UserAgent, цитирую сюда:

procedure TEmbeddedWB.SetUserAgent;
var
reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey("\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform", True)
then Reg.WriteString(FUserAgent, "");
finally
Reg.CloseKey;
Reg.Free;
end;
end;


Не проверял, но людям верить надо...


2. Изменяем заголовок запроса, посылаемого на сервер..
Или на уровне APP (асинхр. настраевыемых протоколов - перехват и подмена), либо делаем запрос wininet функциями, а результат уже подпихиваем TWebBrowser...

Может еще можно поиграть на уровне BeforeNavigate2, см - Headers: OleVariant; - но до этого руки не доходили, поищи сам на гугле..




 
nikkie   (2003-05-15 01:21) [4]

вариант 3 - из MSDN (ID: Q183412, PRB: WebBrowser Control Clients Share Global Settings)

MSHTML will also ask for a new user agent via DISPID_AMBIENT_USERAGENT when navigating to clicked hyperlinks. This ambient property can be overridden, but it is not used when programmatically calling the Navigate method.

Приведенный пример там - исключительно на MFC, поэтому не очень помогает. Но для изменения "ambient property" плясать надо от метода Invoke. Ниже пример на дельфи, только для простоты я воспользовался TEmbeddedWB - там есть событие OnInvoke - не надо писать своего наследника от TWebBrowser.

К сожалению, этот метод работает только когда юзер сам кликает по ссылке. Для программной навигации надо видимо запихать User-Agent в параметр Headers (что-то типа того, что написано в закомментаренных строчках в FormCreate - вроде работает, но остальные поля, например HTTP_ACCEPT, коцаются; с этим надо еще поэкспериментировать).

uses
... ActiveX, EmbeddedWB, IEConst;

procedure TForm1.FormCreate(Sender: TObject);
var
Doc: Variant;
Headers: OleVariant;
begin
EmbeddedWB1.Navigate("about:blank");
Doc := EmbeddedWB1.DefaultInterface.Document;
Doc.write("<a href=" http://www.proxychecker.ru/browser.phtml">click me</a>");

// Headers := "User-Agent: Nu ochen hitryi browser"#13#10;
// EmbeddedWB1.Navigate(" http://www.proxychecker.ru/browser.phtml",
// EmptyParam, EmptyParam, EmptyParam, Headers);
end;

const
USER_AGENT: WideString = "takoi vot hitryi browser";

function TForm1.EmbeddedWB1Invoke(DispID: Integer; const IID: TGUID;
LocaleID: Integer; Flags: Word; var Params: tagDISPPARAMS; VarResult,
ExcepInfo, ArgErr: Pointer): HRESULT;
begin
if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) and
(DispId = DISPID_AMBIENT_USERAGENT) then
begin
PVariant(VarResult)^ := USER_AGENT;
Result := S_OK;
end else begin
Result := DISP_E_MEMBERNOTFOUND;
end;
end;



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
3-2777
Caesar
2003-05-13 15:53
2003.06.02
Tera XL


3-2769
pdobrev
2003-05-13 19:59
2003.06.02
Interbase


1-2889
frits
2003-05-22 16:26
2003.06.02
BitMap


1-2984
Calm
2003-05-21 14:48
2003.06.02
Создание COM-объекта


3-2818
gizar
2003-05-15 07:25
2003.06.02
Про SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский