![]() |
eXeL@B —› Вопросы новичков —› как вписать свой сайт в поле "включать режим совместимости эксплорера 8-9"? |
Посл.ответ | Сообщение |
|
Создано: 03 марта 2013 12:55 · Личное сообщение · #1 нужно добавить свой сайт в список сайтов, для которых включается режим совместимости в эксплорере. нашлась ветка реестра: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData в ней параметр UserFilter при добавлении какого-то сайта в список - появляется этот параметр, где в бинарном или каком-то там коде этот сайт записывается. например добавляем cracklab.ru сей параметр начинает выглядеть так: Code:
последние 63 00 72 00 61 00 63 00 6B 00 6C 00 61 00 62 00 2E 00 72 00 75 00 это и есть сама ссылка cracklab.ru 0B 00 перед этой ссылкой - количество символов в ссылке cracklab.ru - 11 первые 41 1F 00 00 53 08 AD BA - это я так полагаю видимо заголовок, типа HEADER - объявляющий что я дескать список сайтов. он вроде как всегда одиннаков. идущие за этим "header"'ом 01 00 00 00 - это я полагаю количество сайтов в списке. в данном случае один. если добавить еще два-три - то это значение изменится на 02 или 03 соответственно. а вот что такое оставшееся: 34 00 00 00 01 00 00 00 01 00 00 00 0C 00 00 00 80 FB 79 37 04 18 CE 01 01 00 00 00 полагаю дата добавления в список? так как при добавлении, потом удалении, потом опять добавлении - одного и того-же сайта этот кусочек меняется. в итоге: если список этот пуст - я смогу добавить свой сайт - просто скопировав имеющийся код в ту ветку реестра и он появится в списке. если тот лист, к примеру, содержит 5 ссылок и одна из них моя - я смогу это прочитать, то есть программа поймет что дописывать мой сайт уже не нужно. но если сайтов например 1 штука или больше, и в них нет моего сайта - то мне надо будет добавить свой в конец имеющегося списка, но в этом случае нужно правильно этот кусочек кода подготовить, а как - я пока не понимаю. был бы рад получить консультацию по этому вопросу у более образованных людей ![]() ![]() |
|
Создано: 03 марта 2013 13:30 · Личное сообщение · #2 |
|
Создано: 03 марта 2013 14:23 · Личное сообщение · #3 по плану утилита производит все нужные настройки автоматически. с 6-7-8 эксплорером все работает замечательно. а вот на 9 если не внести сайт в список для включения совместимости - работать не будет. про добавление сайта вручную здесь речь не идет. нужно именно автоматическое добавление внешней программой - а это ветка реестра, которая в бинарном или каком-то там коде. вот нужен механизм составления этого бинарного кода. ![]() |
|
Создано: 03 марта 2013 14:57 · Поправил: coder13 · Личное сообщение · #4 Если сайт Ваш, то не проще ли сразу на сайте прописать, что он должен открываться в режиме совместимости? Code:
![]() |
|
Создано: 03 марта 2013 16:31 · Личное сообщение · #5 к сожалению не наш. и поскольку это система сдачи отчетности - авторы заинтересованы в том, чтобы как можно меньше народу смогло настроить и сдать эту самую отчетность. при не своевременной сдаче - штраф ![]() вот моя партизанско-подрывная деятельность в помощи бухгалтерам, чтобы как можно более упростить настройку этой системы. уже пол года наверное програмка моя гуляет по сети настраивает 6-7-8, а вот 9 я предал анафеме... однако народ редкий пишет что 9 однако работает. ну и поставил я дома 7, 9 эксплорер и сработало - только надо было добавить совместимость. вот теперь сплю и вижу как бы сделать апдейт для своей программы ![]() ![]() |
|
Создано: 03 марта 2013 16:48 · Личное сообщение · #6 |
|
Создано: 03 марта 2013 16:55 · Личное сообщение · #7 reversecode да не солидно как-то... все настройки такие, в принципе бухгалтерша как бы должна понять, просто их куча и все мелкие. а тут комплексная однокликовая утилитка - типа внести в доверенные, насувать ярлыков в избранное, всплывающие окна разрешить для доверенных, автоматические запросы на загрузку файлов... как-то очень не солидно будет по окончанию этой настройки выводить радостную месагу: а теперь кликните кнопку совместимости. в наш век высоких технологий хотелось бы решить эту проблему высокотехнологично. ![]() |
|
Создано: 03 марта 2013 16:59 · Личное сообщение · #8 |
|
Создано: 03 марта 2013 17:11 · Личное сообщение · #9 |
|
Создано: 03 марта 2013 18:09 · Личное сообщение · #10 |
|
Создано: 03 марта 2013 19:09 · Личное сообщение · #11 |
|
Создано: 03 марта 2013 20:48 · Личное сообщение · #12 вроде этого в msdn нет: в urlmon.dll есть метод интерфейса HRESULT __cdecl CBrowserModeFilter::AddIE7Rule(CBrowserModeFilter *this, const wchar_t *pszDomain) експорт № 442 создает этот интерфейс HRESULT __cdecl CreateBrowserEmulationFilter(__MIDL___MIDL_itf_browsermode_0000_0000_0004 type, IBrowserEmulationFilter **ppBMFilter) т.е. тс нужно понять параметры вызова и написать простой интерфейс ![]() |
|
Создано: 03 марта 2013 20:57 · Личное сообщение · #13 vden столько сложностей... правка реестра потребует от меня простого быдлокода вставки чего надо куда надо, просто надо понять чего он хочет в том не понятном участке кода параметра в реестре. а CreateBrowserEmulationFilter, я так полагаю, потребует подгрузки длл к моей утилитке, объявление этой функции в программе, а после её использование... эм... это куда сложнее блин. CBrowserModeFilter::AddIE7Rule(CBrowserModeFilter *this, const wchar_t *pszDomain) - эта команда добавляет сайт в список? это точно? ![]() |
|
Создано: 03 марта 2013 21:02 · Поправил: vden · Личное сообщение · #14 это не точно, это на основе стек-трейса при добавлении домена если нужно менять именно бинарные данные, то там же в urlmon это можно поискать ps. не знаю насколько все сложно, я добавил правила вот так интерфейс Code:
сама программа Code:
![]() |
|
Создано: 03 марта 2013 23:04 · Поправил: SeregaZ · Личное сообщение · #15 vden для меня очень сложно ![]() ![]() последнее уточнение - этот код добавляет сайты в этот список? ![]() если да, то дальше вопрос - обязательно объявлять все три процедуры? procedure IsIE7Mode; safecall; // don't call procedure IE7Rules; safecall; // don't call procedure AddIE7Rule(pszDomain: PChar); или достаточно последней? у меня просто несколько иной, менее популярный язык программирования... и мне пока довольно сложно с ориентироваться в этом семпле. какой правильный тип переменной тут procedure AddIE7Rule(pszDomain: PChar);? обычная текстовая? // CBrowserModeFilter::IsIE7Mode(IUri *,int *) и далее - это я так полагаю просто комментарии чтоб было понятно где какая переменная и мне можно упустить? п.с.: арчи... ты просто слепой от старости и нихрена не видишь. ![]() |
|
Создано: 03 марта 2013 23:11 · Поправил: TOM_RUS · Личное сообщение · #16 Код из поста #14, но на C#: Code:
Странно что такие вещи мелкомягкие оставляют недокументированными... ![]() |
|
Создано: 04 марта 2013 09:32 · Личное сообщение · #17 |
![]() |
eXeL@B —› Вопросы новичков —› как вписать свой сайт в поле "включать режим совместимости эксплорера 8-9"? |
Эта тема закрыта. Ответы больше не принимаются. |