Как я могу написать всем пользователям их HKEY_CURRENT_USER, используя inno-setup - PullRequest
3 голосов
/ 04 ноября 2010

Я устанавливаю стороннее программное обеспечение, которое должно считывать с HKEY_CURRENT_USER \ SOFTWARE ... с использованием inno-setup.Мне нужно написать это значение всем пользователям, как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 04 ноября 2010

В принципе, вы не можете сделать это (простым и поддерживаемым способом). Для этого необходимо загрузить все кусты пользователей, и это не обязательно относится ко всем пользователям.

Вы можете записать в профиль по умолчанию в HKEY_USERS\.DEFAULT, что повлияет на все новые профили пользователей, или вы можете написать в куст машины под HKEY_LOCAL_MACHINE.

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

2 голосов
/ 04 ноября 2010

Как говорит 0xA3, вы не можете. Одна из основных причин - Перемещаемые профили . В настоящее время данные профиля для конкретного пользователя могут даже не присутствовать на компьютере в данный момент или могут быть устаревшей копией.

Если вам нужен параметр, который применяется ко всем пользователям, тогда предпочтительным будет очевидный HKEY_LOCAL_MACHINE. Если вам нужна настройка, которая будет по умолчанию для всех пользователей, то сохраните эту по умолчанию в HKEY_LOCAL_MACHINE и скопируйте ее в профиль пользователя, если в данный момент у них там нет значения .

0 голосов
/ 03 декабря 2013

HKEY_CURRENT_USER - это просто указатель на: HKEY_USERS \ Security ID (SID), поэтому, если вы действительно хотите это сделать, вы можете выполнить итерацию по всем HKEY_USERS (однако сюда входят только пользователи, вошедшие в систему в данный момент).

Лучшим решением может быть проверка в вашем приложении, были ли установлены настройки для HKEY_CURRENT_USER и если нет, скопировать из HKEY_LOCAL_MACHINE.Таким образом, ваше приложение будет обрабатывать новых пользователей, добавленных после установки.

0 голосов
/ 22 ноября 2011

Вы можете рассмотреть запуск приложения, поиск текущих пользовательских ключей и, если они не найдены, сообщение о восстановлении, которое добавит ключи текущему пользователю.У меня похожая ситуация, и вот что я делаю.

...