2010-02-12 4 views
0

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

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

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

Спасибо

ответ

0

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

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

Если вы построили его в VS2008 с АТЛ, вы хотите добавить: AtlSetPerUserRegistration(true); к вашему DllRegisterServer и DllUnregisterServer.

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

+0

Спасибо, Я использовал установку MSI, но возникла проблема с импортом реестра. – Zaky

+0

Означает ли это, что вы нашли проблему? Если да, можете ли вы опубликовать то, что было ответом? Если нет, если вы можете ответить на некоторые из вопросов, которые я задаю в своем ответе, я мог бы предоставить более глубокое понимание. – taxilian