Как я могу сделать, чтобы мой установщик записал в дерево реестра HKCU? - PullRequest
1 голос
/ 28 марта 2012

Мой установщик требует прав администратора.Во время установки некоторые значения записываются в дерево HKCU реестра текущего пользователя, вошедшего в систему.Однако, когда эта учетная запись пользователя является так называемой стандартной учетной записью, пользователь должен указать учетные данные для учетной записи администратора при запуске установщика.Затем значения записываются в дерево HKCU, относящееся к этой учетной записи администратора, вместо HKCU текущего пользователя, вошедшего в систему.Та же проблема возникает, когда установщик хочет записать некоторые данные в локальный AppData и хочет создать ярлык на рабочем столе.

Как мне обойти это?

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

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

Правильный подход - использовать установку для каждого пользователя только с пользователемместоположения или установка для каждой машины только с местоположением для машины (HKEY_LOCAL_MACHINE вместо HKEY_CURRENT_USER).

1 голос
/ 28 марта 2012

Если вы запрашиваете права администратора, это обычно означает, что вы выполняете общесистемную / машинную установку для всех пользователей.При создании установщика такого типа не рекомендуется писать в HKCU или% USERPROFILE%, не только потому, что вы можете выполнить действия для «неправильного пользователя», но и в конечном итоге инициализировать установку только для этого одного пользователя ине все пользователи.

Я рекомендую записать эти общие данные в HKLM\Software\YourCompany\YourApp\CommonData и / или <CSIDL_COMMON_APPDATA|CSIDL_PROGRAM_FILES>\YourCompany\YourApp\CommonData, а затем импортировать эти данные в приложение при первом запуске.

Вы также можете рассмотреть возможность создания установщика для каждого пользователя (например, Chrome), но это означает, что вы можете только записывать в HKCU и% USERPROFILE%!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...