Зарегистрировать DLL (ActiveX) для пользователя без прав администратора - PullRequest
0 голосов
/ 12 февраля 2010

Я пытаюсь зарегистрировать dll (ActiveX) для пользователя без прав администратора, использующего MSI. Для создания настроек реестра я зарегистрировал dll в режиме администратора, затем экспортировал соответствующие записи реестра и переименовал все HKLM в HKCU.

Когда я устанавливаю его для пользователя без прав администратора, все работает нормально. Но когда я использую те же настройки с правами администратора, возникает проблема обнаружения TypeLib.

Что следует изменить в записях реестра, чтобы работать как для администратора, так и для пользователя без прав администратора, когда регистрация выполняется в HKCU?

Спасибо

1 Ответ

0 голосов
/ 17 февраля 2010

Если ваши записи действительно зарегистрированы под HKCU, это будет работать.Какой установщик MSI вы используете?Должен быть способ указать, что он должен быть установлен в пользовательском режиме.

Вы разрешаете dll самостоятельно регистрироваться или имеете, что msi регистрирует dll?Лучше всего, чтобы MSI делал это, но это скорее боль.Если у вас есть саморегистрация .dll, вы должны убедиться, что dll регистрируется в HKEY_CURRENT_USER, а не в HKEY_LOCAL_MACHINE, как это делает ATL по умолчанию.

Если вы создали его в VS2008 с ATL, выхочу добавить: AtlSetPerUserRegistration(true); к вашему DllRegisterServer и DllUnregisterServer.

В любом случае, вот некоторые вещи, которые нужно искать.Вы можете использовать Process Monitor и наблюдать за командами Reg, чтобы точно видеть, что происходит;что-то где-то пишет в HKLM.

...