23 июля 2019

Delphi 7 HELP под Windows 10

    "В интернетах" пугают о проблемах при установке и работе Borland Delphi 7 под Windows 10. Недавно мне пришлось установить Delphi 7 под Windows 10. Запустил - работает. Установил на него обновление, запустил - работает. Установил библиотеки, скомпилировал модули проекта - все работает без проблем. Мне даже не пришлось запускать delphi32.exe в режиме совместимости (Compatibility mode) или от имени администратора (Run this program as an administrator).
    А где обещанные проблемы?
    Возможно, мне удалось избежать их, т.к. я никогда не ставил средства для разработки в папку по умолчанию. Вместо "c:\Program Files\Borland" у меня всегда была папка "X:\Borland", куда я ставил разные версии IDE (позже она стала называться "X:\DevTools"). Возможно, инсталляция не в "c:\Program Files" позволила мне избежать проверок безопасности, которыми грешат последние версии Windows и о которых не знают программы 2002-го года.
    Единственная проблема, с которой я столкнулся - это вызов справки. Компания Microsoft заботясь о пользователях много лет настоятельно рекомендовала разработчикам ПО перейти с HLP на CHM, HTML или XML. А под Windows 10 и Windows Server 2012 вовсе исключила поддержку формата Windows Help.
    Что делать? Можно смириться и жить дальше... учить матчасть по докам или учиться искать в интернете. Но можно не идти на поводу у Microsoft, а пофиксить это своими руками:
1. копируем на компьютер с Windows 10 файлы c:\Windows\winhlp32.exe и c:\Windows\en-US\winhlp32.exe.mui с компьютера с Windows 7/8
2. в реестре в разделах
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft (для 32-х битной версии Windows)
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft (для 64-х битной версии Windows)
создаем раздел WinHelp с параметры AllowProgrammaticMacros и AllowIntranetAccess с типом DWORD (32-bit) и значением равным 1:

WinHelp-32.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WinHelp]
"AllowProgrammaticMacros"=dword:00000001
"AllowIntranetAccess"=dword:00000001

WinHelp-64.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\WinHelp]
"AllowProgrammaticMacros"=dword:00000001
"AllowIntranetAccess"=dword:00000001

В результате Windows Help работает и на Windows 10, и на Windows Server 2012R2.

1 комментарий:

  1. У меня к сожалению этот метод не сработал. Винда не дает заменить эти файлы даже при запуске замены от администратора.

    Но по ссылке
    http://blackstrip.ru/phpBB2/viewtopic.php?t=629
    я нашел как это сделать, там дается небольшой архив со всем необходимым.
    Проверил на Win 10 Pro x64 1903, все отработало нормально.

    ОтветитьУдалить