Я усердно работаю над тем, чтобы мой продукт без проблем работал в Windows 7. Проблема в том, что существует небольшой набор глобальных (не зависящих от пользователя) настроек приложения, которые все пользователи должны иметь возможность изменять.
В предыдущих версиях я использовал HKLM\Software\__Company__\__Product__
для этой цели. Это позволило опытным пользователям и администраторам изменять ключ реестра, и все работало правильно. Теперь, когда Windows Vista и Windows 7 имеют эту функцию контроля учетных записей, по умолчанию даже администратор не может получить доступ к ключу для записи без повышение .
Глупое решение, конечно, означало бы добавление опции requireAdministrator
в манифест приложения. Но это действительно непрофессионально, поскольку сам продукт чрезвычайно далек от задач, связанных с администрированием. Поэтому мне нужно остаться с asInvoker
.
Другое решение может означать программное повышение в моменты, когда требуется доступ для записи в ключ реестра. Не говоря уже о том, что я не знаю, как это реализовать, это тоже довольно неловко. Это так сильно мешает нормальному взаимодействию с пользователем, что я вряд ли рассмотрю это как вариант.
То, что, как я знаю, должно быть относительно легко сделать, это добавить доступ на запись к указанному ключу реестра во время установки. Для этого я создал отдельный вопрос . Это также очень похоже на доступ к общему файлу для хранения настроек.
Мне кажется, что должен быть способ выполнить то, что мне нужно, таким образом, чтобы он был безопасным, простым и совместимым со всеми операционными системами. Есть идеи?