У меня есть приложение, которое должно поддерживать изменение некоторых данных реестра в зависимости от желаемой установки.В настоящее время у меня нет проблем с жестким программированием для получения повышения прав и внесения изменений на всей локальной машине, но это далеко не так хорошо, как в идеале, я также хотел бы поддержать установку для каждого пользователя.Я мог бы жестко закодировать это, но потом я потерял вещи с локальной машины.Если быть точным, рассматриваемые изменения включают в себя изменения ассоциации файлов, COM-компоненты и т. Д.
Как правильно поддерживать оба сценария использования? В настоящее время я использую набор флажков ON / OFF дляРазнообразие ассоциаций.
- Должен ли я изменить это значение, например, на файл MachineInstall, существующий в каталоге моих приложений, и, если не предполагается, что пользователь установил?
- Это ожидаемое /допустимый / какой-либо другой случай, чтобы сказать, что кто-то может захотеть сделать некоторые вещи для всей машины, а некоторые только для пользователя?(Например, смешивание этих двух.)
- Или мне следует изменить весь пользовательский интерфейс, отойти от флажков и перейти к какому-нибудь комбинированному списку «Нет / Пользователь / Локальный»?Опять же, я думаю, что это может привести к поломке, если вы задействуете несколько пользователей и комбинаций.
Чтобы дать представление, я лично ожидаю, что рассматриваемое приложение будет использоваться для всех на компьютере.и, как таковой, склоняется к локальной машине как «по умолчанию», если это имеет какое-то значение.
Я, вероятно, слишком много обдумываю вопросы, так что любой вклад очень важен.:)
PS
Теперь кто-то, вероятно, скажет: «Не делайте все эти вещи из вашего приложения, вместо этого делайте это из установщика».И у них, вероятно, есть смысл, но смысл в том, чтобы позволить легко изменять эти параметры из приложения.Кроме того, я не использую установочные пакеты .MSI, потому что они делают работу с 32/64-битными исполняемыми файлами катастрофой, требующей модулей слияния, порождающих другие MSI в зависимости от ситуации и т. Д. (Я забыл детали в прошлый раз, когда язакопался в нем и забыл об этом).У меня нет этих знаний, ни времени, чтобы изучать все тонкости установок MSI, поэтому, насколько мне известно, это не так.Для загрузки мое приложение вполне может функционировать без присутствия каких-либо этих записей реестра, и это специально.В некотором смысле можно сравнить его с Process Explorer от Sysinternals, который не требует инсталлятора, но может быть разархивирован и без проблем захватить диспетчер задач и т. Д., Если пользователь захочет, или просто запустить автономно.