Номер версии IE, используемой редактором FBE

85 views
Skip to first unread message

Sclex

unread,
May 28, 2026, 10:35:09 AM (4 days ago) May 28
to Fiction Book Editor
Раньше TaKir запостил в данной гугл-группе информацию, полученную от DeepSeek-а:

> FBE использует встроенный браузерный движок
> FBE был скомпилирован с встроенным IE6 как компонентом
> Даже если на системе установлен IE11, FBE все равно использует свой внутренний движок IE6

Однако, как показала проверка (специальным скриптом), это неправда, что FBE использует встроенный в него движок IE6. У TaKir-а скрипт показал, что используется *седьмая* версия IE.

Скрипт, показывающий номер используемой версии IE, я залил в GitHub-хранилище. Текущий номер версии скрипта - 1.1.

Ссылка для скачивания файла скрипта (последняя версия):
22_Показать номер используемой версии IE.js (положить в папку "Scripts\10_Статистика")

Желающим предлагаю попробовать запустить данный скрипт и рассказать в данном "обсуждении", какую информацию сценарий выдал. Напоминаю, что скопировать текст из MessageBox-а (окошка), выдаваемого FBE, можно, нажав Ctrl-Insert. Выделять никакой текст не нужно - только нажать горячую клавишу. Текст скопируется в буфер обмена, откуда его можно вставить в сообщение в гугл-группе.

У меня данный сценарий выдает следующее:

---------------------------
FBE скрипт
---------------------------
Используется Internet Explorer версии 6.

Значение window.navigator.userAgent:
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"
---------------------------
ОК  
---------------------------

Sclex

unread,
May 28, 2026, 11:16:02 AM (4 days ago) May 28
to fiction-b...@googlegroups.com
> Используется Internet Explorer версии 6.
>
> Значение window.navigator.userAgent:
> "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"

(Я использую Windows XP и IE6.)

чт, 28 мая 2026 г. в 17:35, Sclex <scl...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/2642f38e-166b-4345-977a-d58b99bb6f91n%40googlegroups.com.

stokber

unread,
May 28, 2026, 2:05:30 PM (4 days ago) May 28
to fiction-b...@googlegroups.com
Win 7, IE 11
Используется Internet Explorer версии 7.

Win 10, IE 11
Используется Internet Explorer версии 7.


чт, 28 мая 2026 г. в 18:16, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CAKw_SM3EUK%3DxSweV2T1CpP4%3D69Doew5MBmdqDavSwN%3DMiAUfxA%40mail.gmail.com.

Sclex

unread,
May 28, 2026, 2:12:02 PM (4 days ago) May 28
to Fiction Book Editor
stokber, спасибо за информацию.

Не понимаю, почему, если в ОС - IE11, скрипт показывает, что используется IE7.

четверг, 28 мая 2026 г. в 21:05:30 UTC+3, sto...@gmail.com:

e-paper.ru

unread,
May 28, 2026, 2:53:47 PM (4 days ago) May 28
to fiction-b...@googlegroups.com
>>  Не понимаю, почему, если в ОС - IE11, скрипт показывает, что используется IE7.

Есть подозрение, что поскольку в момент создания начальных версий FBE не было ничего старше ИЕ 7, и FBE просто не в состоянии увидеть (и использовать) ничего другого.

Через неделю смогу проверить скриптом на моем древнем нетбуке на XP, там в системе 8 ИЕ.



чт, 28 мая 2026 г. в 21:12, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/ce5a8371-6161-41fe-80c3-9a454c3a448cn%40googlegroups.com.

Sclex

unread,
May 29, 2026, 3:04:18 AM (3 days ago) May 29
to Fiction Book Editor
> Есть подозрение, что поскольку в момент создания начальных версий FBE не было ничего старше ИЕ 7, и FBE просто не в состоянии увидеть (и использовать) ничего другого.

Так IE7 в системе (у тебя и у stokber-а) - просто нету же.

четверг, 28 мая 2026 г. в 21:53:47 UTC+3, TaKir:

Sclex

unread,
May 29, 2026, 4:05:48 AM (3 days ago) May 29
to Fiction Book Editor
Спросил вот DeepSeek:

=== Начало цитаты ===
ВОПРОС:
Может ли Internet Explorer 11 выдавать себя за Internet Explorer 7 (для каких-то приложений)?

ОТВЕТ:

Да, может. Эта функция называется «Режим совместимости» (Compatibility View) и «Эмуляция документов» (Document Mode). Она существует именно для того, чтобы старые корпоративные приложения и сайты, написанные под IE7, могли работать в IE11.

Однако эмуляция неидеальна, и есть несколько способов её включения. Вот как это работает:

1. Режим совместимости (Compatibility View) — эмуляция IE7 по умолчанию

Это самый простой способ для пользователя или администратора.

  • Как включить: Нажать на иконку шестеренки (Сервис) → Параметры просмотра в режиме совместимости (Compatibility View settings).

  • Результат: Если добавить туда сайт, IE11 попытается отобразить его так, как это делал IE7.

  • Нюанс: По умолчанию галочка «Использовать списки совместимости Microsoft» активна. Microsoft вела «белый список» сайтов, которые автоматически переключаются в режим IE7. Если приложение там есть, оно «прикинется» IE7 без вашего участия.

  • User-Agent: При таком способе строка User-Agent действительно меняется на MSIE 7.0, а версия Trident (движка) указывает на IE7.

2. Эмуляция документа (Document Mode) через X-UA-Compatible

Это механизм, управляемый со стороны разработчика или администратора сервера.

  • Как работает: Сервер отправляет HTTP-заголовок или в HTML-код страницы вставлен мета-тег:

<meta http-equiv="X-UA-Compatible" content="IE=7" />
  • Результат: IE11 получает команду «рендерить эту страницу, используя движок и поведение IE7».

  • Разница в User-Agent: Здесь строка User-Agent не всегда меняется на IE7 по умолчанию (она остается как у IE11). Сервер видит современный User-Agent, но рендеринг и поведение JavaScript (движок JScript v5.7 вместо Chakra) будут от IE7. Это может сбивать с толку серверную логику определения браузера.

3. Enterprise Mode (корпоративный режим) — самый жесткий метод

Для крупных организаций Microsoft добавила механизм, который глубже погружает IE11 в старые версии.

  • Как работает: Администратор домена через групповые политики составляет список сайтов. Для сайта можно принудительно указать режим совместимости с конкретной версией (IE7, IE8 и т.д.).

  • Результат: IE11 перезапускает вкладку внутри себя так, что даже строка User-Agent меняется на MSIE 7.0, и движок полностью переключается. Этот режим глубже обычного Compatibility View.

Что важно понимать про эту маскировку

Если вам нужно, чтобы приложение «видело» IE7, просто включить любой из режимов может быть недостаточно из-за двух главных отличий IE11, которые не исчезают полностью:

  1. JavaScript-движок: В IE7 использовался JScript 5.7. В IE11 изначально используется Chakra. При включении режима IE7 через мета-тег или Compatibility View движок переключается обратно на старый, медленный и со старыми багами. Без этого переключения никакого IE7 не получится.

  2. Объектная модель и безопасность: IE7 имел дырявую модель безопасности, позволял ActiveX работать без лишних вопросов и имел свою, более вольную DOM-модель. Режимы совместимости имитируют это, но есть сценарии (особенно с VBScript и старыми кривыми ActiveX-компонентами), где полная эмуляция невозможна. В этом случае выручал только Enterprise Mode.

Итог: Да, IE11 может «прикинуться» IE7 по команде из настроек браузера, групповых политик Windows или по требованию самого сайта.

=== Конец цитаты ===


четверг, 28 мая 2026 г. в 21:53:47 UTC+3, TaKir:

Sclex

unread,
May 29, 2026, 4:12:39 AM (3 days ago) May 29
to Fiction Book Editor
> Есть подозрение, что поскольку в момент создания начальных версий FBE не было ничего старше ИЕ 7, и FBE просто не в состоянии увидеть (и использовать) ничего другого.

Может, дело не в том, что FBE *сам* старается использовать IE7, а в том, что *операционная система* видит, что FBE - *старое* приложение, и она "подсовывает" ему (редактору FBE) IE11 в режиме совместимости с IE7.

четверг, 28 мая 2026 г. в 21:53:47 UTC+3, TaKir:

Sclex

unread,
May 29, 2026, 6:03:11 AM (3 days ago) May 29
to Fiction Book Editor
Ага! Кажется, что-то проясняется:

=== Начало цитаты ===
ВОПРОС DeepSeek-у:
Может ли 32-битное приложение (exe-файл) использовать (через посредство ActiveX) 64-битную версию Internet Explorer-а?

ОТВЕТ DeepSeek-а:

Краткий ответ: Нет, не может.

Вот подробное объяснение причин и механизмов, лежащих в основе этого ограничения.

1. Фундаментальное правило Windows: Разрядность процесса

В Windows существует жесткое правило: 32-битный процесс может загружать только 32-битные DLL и компоненты, а 64-битный процесс — только 64-битные. Это касается любых внутрипроцессных (in-process) COM-серверов, к которым относится и ActiveX.

2. ActiveX — это In-Process COM (DLL)

Когда ваше 32-битное приложение создает объект ActiveX, оно загружает DLL-библиотеку этого объекта в свое собственное адресное пространство. Даже если этот объект предназначен для «встраивания Internet Explorer» (например, элемент управления WebBrowser), на самом деле загружается не отдельный процесс iexplore.exe, а библиотека рендеринга.

32-битная библиотека не может загрузить 64-битный код. Попытка создать 64-битный ActiveX из 32-битного приложения приведет к ошибке типа CLASS_E_CLASSNOTAVAILABLE или E_NOINTERFACE (система просто не найдет подходящий обработчик в реестре для вашей разрядности).

3. WebBrowser Control — здесь особая ситуация

Если вы используете элемент управления Microsoft WebBrowser (ieframe.dll / shdocvw.dll) внутри своего 32-битного приложения:

  • Вы всегда будете получать 32-битную версию рендеринга.

  • Этот контрол по умолчанию использует режим эмуляции Internet Explorer 7. Чтобы включить Edge Mode (современный рендеринг), вам нужно установить соответствующий ключ в реестре для вашего приложения (FEATURE_BROWSER_EMULATION).

  • Важно: Даже работая в 64-битной Windows, 32-битное приложение получит 32-битную версию WebOC, и она будет работать в своем 32-битном адресном пространстве.

4. Единственный способ «общения» (Out-of-Process)

Если вам кровно необходимо, чтобы 64-битный код взаимодействовал с вашим 32-битным приложением, это нельзя сделать через ActiveX. Придется использовать архитектуру «клиент-сервер», где общение идет через границы процесса (маршалинг):

  • Out-of-Process COM-сервер: Вы можете написать 64-битный COM-сервер в отдельном exe-файле, зарегистрировать его, и тогда ваша 32-битная программа сможет к нему обращаться через прокси (DCOM).

  • Вспомогательный процесс: Запустить 64-битный скрытый процесс и общаться с ним через сокеты, пайпы (Named Pipes), разделяемую память и т.д.

Вывод

Если вы запустили 32-битный exe-файл, вся экосистема IE/ActiveX внутри него строго 32-битная. Заставить его использовать 64-битные библиотеки IE напрямую через ActiveX технологически невозможно.

=== Конец цитаты ===

пятница, 29 мая 2026 г. в 11:12:39 UTC+3, Sclex:

Sclex

unread,
May 29, 2026, 6:13:42 AM (3 days ago) May 29
to fiction-b...@googlegroups.com
FBE, напомню, - приложение, несомненно, 32-битное. Т.к. у меня работает в 32-битной Windows XP.

пт, 29 мая 2026 г. в 13:03, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/df11b08a-04cb-499f-adb5-0f1c61a60c40n%40googlegroups.com.

Sclex

unread,
May 29, 2026, 6:24:41 AM (3 days ago) May 29
to Fiction Book Editor
Еще инфа:

===  Начало цитаты ===
ВОПРОС DeepSeek-у:
Что такое WebOC?

ОТВЕТ DeepSeek-а:

WebOC — это устоявшееся в среде Windows-разработчиков сокращение от WebBrowser Control (Элемент управления WebBrowser).

Если раскрыть подробнее, то это не какой-то отдельный продукт, а программный компонент (COM-объект), который позволяет встроить полноценный движок браузера Internet Explorer в пользовательское приложение.

Вот основные технические детали, которые помогут понять его суть:

1. Это то же самое, что и Internet Explorer, но без рамки

WebOC использует те же DLL-библиотеки, что и настольный Internet Explorer (главная из них — mshtml.dll для рендеринга и ieframe.dll для интерфейса). По сути, это "движок IE", упакованный в ActiveX-элемент.

Любое приложение может разместить его у себя в окне и загружать HTML, выполнять JavaScript и отображать CSS так же, как это делает iexplore.exe.

2. Два классических способа создания

Исторически разработчики в Windows использовали два COM-класса:

  • Shell.Explorer.2 (CLSID 8856F961-340A-11D0-A96B-00C04FD705A2) — старый добрый элемент, уходящий корнями во времена Windows 95/98. Внутри него работает надстройка над shdocvw.dll.

  • Более новый WebBrowser (класс ieframe.dll) — современная реализация, которая используется в актуальных версиях Windows.

3. Как он рендерит страницы (режимы эмуляции)

Самая неприятная особенность WebOC заключается в том, что по умолчанию он включает режим совместимости с Internet Explorer 7.
Это значит, что даже если на компьютере установлен IE11, ваше приложение будет рендерить контент как IE7, если вы не попросите его явно об обратном. Это делается через настройку в реестре (FEATURE_BROWSER_EMULATION), где для вашего exe-файла указывается, под какую версию IE «притворяться».

<...тут я (Sclex) кое-что вырезал...>

Резюмируя: WebOC — это «кирпичик» Internet Explorer, который можно встроить в любое своё приложение, но который по умолчанию устаревший и требует специальных заклинаний, чтобы начать вести себя как современный браузер.

=== Конец цитаты ===

Sclex

unread,
May 29, 2026, 6:32:19 AM (3 days ago) May 29
to Fiction Book Editor
Больше, больше инфы:

=== Начало цитаты ===
ВОПРОС DeepSeek-у:
Как настроить для определенного приложения (exe-файла), чтобы оно использовало WebOC НЕ в режиме совместимости с Internet Explorer 7?

ОТВЕТ DeepSeek-а:

Чтобы 32-битное (или 64-битное) приложение, использующее WebBrowser Control, перестало притворяться IE7 и начало использовать современный движок (например, IE11), нужно прописать ваше приложение в реестре Windows.

Это делается через параметр FEATURE_BROWSER_EMULATION. Как только вы добавляете туда запись, WebOC начинает рендерить страницы согласно указанной версии, а не в режиме Strict IE7 по умолчанию.

Вот пошаговая инструкция.

Шаг 1. Узнайте точное имя exe-файла

В реестре ключом является имя файла. Например:

  • MyApp.exe

  • YourProgram.exe

Важно использовать именно то имя, которое видит система в процессах (без пути к папке).

Шаг 2. Определите нужное значение (DWORD)

Вам нужно выбрать число, которое соответствует желаемой версии Internet Explorer. Самые актуальные варианты:


Версия эмуляции // 
Значение DWORD (десятичное) // Примечание

IE11 (Стандартный) // 
11000 (0x2AF8) // Это рекомендуемый выбор для Win 8.1 и Win 10/11.

IE11 (Web-страницы без зон безопасности)
 // 11001 (0x2AF9) // Более строгий режим Edge, игнорирует настройки зон безопасности. Обычно не нужен.

IE10 // 
10001 (0x2711) // Строгий IE10.

IE10 (Стандартный) // 
10000 (0x2710)
IE9 // 9999 (0x270F)
IE8 (Стандартный) // 8888 (0x22B8)

Главный совет: Ставьте значение 11000.

Шаг 3. Выберите правильный раздел реестра (Разрядность!)

Здесь самая частая причина ошибок. Если ваше приложение 32-битное (x86) и работает на 64-битной Windows, вам нужно использовать раздел для 32-битных приложений (Wow6432Node).

  • Вариант А: Для 64-битного приложения (или 32-битного на 32-битной Windows)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

Вариант Б: Для 32-битного приложения на 64-битной Windows (ваш случай!)

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
  • Примечание: Также иногда можно использовать HKEY_CURRENT_USER (замените LOCAL_MACHINE на CURRENT_USER в пути выше), но тогда настройка будет действовать только для текущего пользователя.

Шаг 4. Создание записи
  1. Откройте regedit.exe.

  2. Перейдите в нужный раздел (если папки FeatureControl нет, создайте её).

  3. Кликните правой кнопкой мыши в правой панели и выберите: СоздатьПараметр DWORD (32 бита).

  4. Назовите его строго как ваш файл: MySuperApp.exe.

  5. Откройте созданный параметр, переключите систему счисления на Десятичная и введите значение 11000.

  6. Нажмите ОК.

Шаг 5. Перезапуск

Изменения вступают в силу только после полного закрытия и повторного запуска вашего приложения.


Дополнительная настройка: User Agent (UA)

Иногда подмены режима рендеринга мало. Некоторые сайты (например, Google) могут продолжать считать браузер устаревшим по строке User-Agent. В IE/WebOC по умолчанию используется UA-строка IE7, если вы не изменили ее вручную.

Если после установки 11000 сайты все равно выглядят плохо или выдают ошибку доступа, нужно обновить UA. Для этого:

  1. Создайте в том же месте (в папке FeatureControl) ключ с именем вашего файла в разделе FEATURE_DOCUMENT_COMPATIBLE_MODE (если его нет, создайте папку).

  2. Задайте значение 0 (десятичное). Это заставит WebOC отдавать правильный, современный User-Agent.

Это должно заставить ваше приложение использовать полноценный IE11.

=== Конец цитаты ===
пятница, 29 мая 2026 г. в 13:24:41 UTC+3, Sclex:

Sclex

unread,
May 29, 2026, 7:24:57 AM (3 days ago) May 29
to Fiction Book Editor
Значит, сейчас, если не прописывать настройку в реестре, FBE может использовать только либо IE6, либо IE7, либо более позднюю версию IE в режиме совместимости с IE7. Возможности JavaScript-а версий IE, более поздних, чем 7-ая получаются (без настройки в реестре) для скриптов FBE недоступны.

stokber

unread,
May 29, 2026, 8:24:06 AM (3 days ago) May 29
to Fiction Book Editor
Поэкспериментировал с указанными изменениями в реестре.

Запуск FBE:
Сообщение:
COM Error
Code: 80004003 [Неправильный указатель]

После закрытия следующее сообщение:
Error at line 906:
Не удалось получить свойство "diVersion" ссылки, значение которой не определено или является NULL

После закрытия запустился FBE с пустым документом без текста и тегов. Меню скриптов пусто.
Win 7, IE 11.

В main.js (line 906) находится такое:
function SetDocumentVersion(desc)
{
var version=desc.all.diVersion;
if(version && version.value=="")
version.value="1.0";
}

пятница, 29 мая 2026 г. в 14:24:57 UTC+3, Sclex:

stokber

unread,
May 29, 2026, 8:29:53 AM (3 days ago) May 29
to Fiction Book Editor
Позже попробую  ещё на Win 10.

пятница, 29 мая 2026 г. в 15:24:06 UTC+3, stokber:

Sclex

unread,
May 29, 2026, 10:43:59 AM (3 days ago) May 29
to fiction-b...@googlegroups.com
stokber, спасибо за проверку совета ИИ.

> В main.js (line 906) находится такое:
> function SetDocumentVersion(desc)
> {
> var version=desc.all.diVersion;
> if(version && version.value=="")
> version.value="1.0";
> }

desc.all.diVersion - это просто поле ввода для номера версии fb2-документа. Т.е. это соответствует fb2-тегу <description><document-info><version>...</version>.

Соообщение
> COM Error
> Code: 80004003 [Неправильный указатель]
, насколько я понимаю, говорит о том, что подключить WebOC не удалось. А дальше не срабатывает попытка прочтения номера версии fb2-документа (из html-кода, который должен находиться в WebOC). Поэтому выдает ошибку насчет "diVersion".


пт, 29 мая 2026 г. в 15:24, stokber <sto...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/3a15ae6e-3d91-4c9b-ae16-1696dda14ca3n%40googlegroups.com.

Sclex

unread,
May 29, 2026, 10:56:13 AM (3 days ago) May 29
to Fiction Book Editor
> Соообщение
>> COM Error
>> Code: 80004003 [Неправильный указатель]
> , насколько я понимаю, говорит о том, что подключить WebOC не удалось.

А может быть, WebOC подключить удается, но потом возникает какая-то ошибка в работе C++-ного кода, из-за того что этот C++-ный код не рассчитан на использование определенной (относительно большой) версии IE.


пятница, 29 мая 2026 г. в 17:43:59 UTC+3, Sclex:

stokber

unread,
May 29, 2026, 3:53:43 PM (3 days ago) May 29
to fiction-b...@googlegroups.com
Попробовал манипуляции с реестром на Win 10 (IE 11). Тоже безрезультатно.

пт, 29 мая 2026 г. в 17:56, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/8305297e-76cf-4968-8d00-eca11b86b690n%40googlegroups.com.

Sclex

unread,
May 30, 2026, 2:55:26 AM (2 days ago) May 30
to Fiction Book Editor
> Попробовал манипуляции с реестром на Win 10 (IE 11). Тоже безрезультатно.

Ясно, спасибо.

пятница, 29 мая 2026 г. в 22:53:43 UTC+3, sto...@gmail.com:
Reply all
Reply to author
Forward
0 new messages