это может быть не лучшим образом, но для большинства небольших случаев это должно быть приемлемым:
"создать второй пустой массив и добавить только те, которые вы хотите keep "
blockquote>Я не помню, где я это читал ... для справедливости я сделаю эту вики в надежде, что кто-то найдет ее или просто не заработает репутацию Я не заслуживаю.
В целом у пользователя неадминистратора есть этот доступ к реестру:
Чтение-запись к:
HKEY_CURRENT_USER
Только для чтения:
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
(который является просто ссылка к HKEY_LOCAL_MACHINE\Software\Classes
) возможно изменить некоторые из этих полномочий на основе ключа ключом, но это чрезвычайно редко. Вам не придется волноваться об этом.
В Ваших целях, Ваше приложение должно писать настройки и конфигурацию к HKEY_CURRENT_USER
. Каноническое место где угодно в HKEY_CURRENT_USER\Software\YourCompany\YourProduct\
, Вы могли потенциально держать настройки, которые глобальны (для всех пользователей) в HKEY_LOCAL_MACHINE
. Очень редко должно сделать это, и необходимо избежать его. Проблема состоит в том, что любой пользователь может "считать" тех, но только администратор (или следовательно, Ваша программа установки/установки) может "установить" их.
Другой общий источник проблемы: Ваше приложение ни во что не должно писать в Program files
или эти Windows
каталоги. Если необходимо записать в файлы, под рукой существует несколько опций; описание всех их было бы более длительным обсуждением. Все опции заканчивают тем, что писали в подпапку или другого под %USERPROFILE%
для рассматриваемого пользователя.
Наконец, Ваше приложение должно остаться вне [1 110]. Этот улей содержит аппаратную конфигурацию, сервисные конфигурации и другие объекты, на которые 99,9999% приложений не должен должен быть смотреть (например, это содержит текущий список устройств Plug and Play). При необходимости в чем-нибудь оттуда большая часть информации доступна через поддерживаемые API в другом месте.
Да, необходимо быть в состоянии записать в любое место под HKEY_CURRENT_USER, не имея Прав администратора. Но это - эффективно частное хранилище, к которому никакой другой пользователь на этой машине не будет в состоянии получить доступ, таким образом, Вы не сможете поместить общую конфигурацию там.