VB6 надстройки отображаются только при запуске от имени администратора (Windows 11)

Вопрос или проблема

Недавно я установил версию VB6 (Enterprise) на машину с Windows 11. Когда я ранее запускал VB6 на Windows 10, я мог использовать популярный исправляющий аддон для колесика мыши, вызывая regsvr32 <addin_path>.dll (запуская от имени администратора), и тогда VB6 мог распознавать аддон и отображать его в менеджере аддонов. Однако, когда я запускаю VB6 с правами без повышения, ни один из этих аддонов (включая те, которые, предположительно, поставляются с установкой) не появляется в менеджере.

вставьте описание изображения здесь

Из-за политики я не могу позволить пользователю просто запускать VB6 от имени администратора каждый раз, когда он хочет его использовать.

Вот что я сделал до сих пор:

  • Я нашел ключ реестра, созданный при вызове regsvr32 (HKLM\SOFTWARE\Classes\VB6IDEMouseWheel.Connect) и затем продублировал его в том же месте, просто под HKCU.
  • Я пытался разместить и зарегистрировать .dll в той же папке, где находится исполняемый файл VB6 (конечно, аннулировав любые предыдущие попытки перед повторной регистрацией).
  • Я изменил параметры безопасности папки, где находятся исполняемый файл (и .dll), чтобы пользователи и программы имели такой же доступ, как и на уровне администратора.

Я не уверен, окажет ли это какое-то влияние на эту проблему, но во время установки я снял галочки с компонентов ActiveX и провайдеров ADO, RDS и OLE DB. Я обнаружил, что если я этого не сделаю, установка не будет работать на Windows 11. Я также запускал установку в режиме совместимости для Windows XP Service Pack 3.

вставьте описание изображения здесь

вставьте описание изображения здесь

Решение на самом деле описано в очень старой статье Microsoft TechNet KnowledgeBase (Q190212), которая больше недоступна:

Q190212: ОШИБКА: Аддоны видимы только пользователю, который устанавливает VB

В кратце:

  1. Экспортируйте следующие ключи реестра для пользователя, где аддоны отображаются корректно (т.е. для пользователя-администратора):

    HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0\Addins
    HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0\AddInToolbar

  2. Импортируйте эти .reg файлы, войдя в систему как целевой пользователь.

Мне не удалось найти способ сделать это для всех пользователей. Изменение HKEY_CURRENT_USER на HKEY_LOCAL_MACHINE не оказало эффекта.

Источник: https://jeffpar.github.io/kbarchive/kb/190/Q190212/

Ответ или решение

Проблема: Отображение надстроек VB6 только при запуске от имени администратора на Windows 11

Если вы столкнулись с проблемой отображения надстроек Visual Basic 6 (VB6) только при запуске приложения от имени администратора на Windows 11, это связано с тем, как Windows обрабатывает разрешения и доступ к реестру для разных пользователей. Ниже приведены подробные шаги по решению данной проблемы, основываясь на вашем описании и имеющихся данных.

Причины проблемы

  1. Разграничение доступа: Надстройки регистрируются в реестре под пользователем, который выполняет команду regsvr32, что ограничивает доступ к ним для других пользователей.
  2. Разрешения реестра: Запись надстроек может существовать только в области HKEY_CURRENT_USER, что означает, что другие пользователи (кроме администратора) не могут видеть эти надстройки.
  3. Настройки безопасности: На Windows 11 могут быть установлены более строгие настройки безопасности, которые способствуют этой проблеме.

Решение проблемы

Для решения данной проблемы воспользуйтесь следующими шагами:

  1. Экспортируйте ключи реестра:

    • Войдите в систему как администратор или пользователь, у которого надстройки отображаются правильно.
    • Откройте редактор реестра (regedit) и перейдите к следующему пути:
      HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0\Addins
      HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0\AddInToolbar
    • Щелкните правой кнопкой на каждом из этих ключей и выберите "Экспорт". Сохраните файл .reg, чтобы перенести его позже на другой аккаунт.
  2. Импортируйте ключи реестра:

    • Войдите в систему под другим пользователем, для которого не отображаются надстройки.
    • Дважды щелкните на экспортированные .reg файлы и подтвердите внесение изменений в реестр.

Дополнительные рекомендации

  • Проверьте настройки безопасности: Убедитесь, что у пользователя, у которого не отображаются надстройки, есть достаточные права доступа к папке, где находится VB6 и его надстройки.

  • Регистрация .dll файлов: Для надстроек, которые требуют регистрации, выполняйте команду regsvr32 от имени администратора. Если это уже было сделано, и вы видите, что проблема сохраняется, попробуйте зарегистрировать их в той же папке, где находится исполняемый файл VB6.

  • Пока не найдено общего решения: Проблемы, связанные с VB6 и Windows 11, остаются актуальными, и разработка универсального решения требует времени. Следите за обновлениями сообщества, касающимися обратной совместимости.

Заключение

Запуск VB6 на Windows 11 с проблемами отображения надстроек может вызвать затруднения, особенно учитывая, что решение ограничивается доступом к реестру. Следуя вышеуказанным шагам, вы сможете обеспечить доступ к вашим надстройкам без необходимости постоянного запуска программы с правами администратора. Регулярно проверяйте наличие обновлений и патчей, которые могут улучшить совместимость VB6 с последующими версиями Windows.

Оцените материал
Добавить комментарий

Капча загружается...