не бывает

даю установщик с WiX для установки программы, для каждой машины (не для пользователя), и это дает им возможность зарегистрировать программу. Регистрация включает в себя ввод имени пользователя и организации (или принятие некоторых значений по умолчанию из настроек Windows) и ввод действительного регистрационного ключа. Когда регистрационный ключ проверен, я записываю настройки реестра в область HKEY_LOCAL_MACHINE с этой информацией. В Windows при запуске MSI автоматически запрашивается пароль администратора, чтобы можно было установить значения реестра в HKEY_LOCAL_MACHINE. Пока жизнь хороша ...

Я включаю опцию в MSI, чтобы дать пользователю возможность отложить регистрацию до более позднего момента времени. Однако, если пользователь является обычным пользователем, и он запускает приложение, если у меня есть диалоговое окно в приложении, которое запрашивает имя / org / product-key, Windows не позволяет приложению записать информацию в HKEY_LOCAL_MACHINE. Таким образом, пользователь не может использовать само приложение, работающее как обычный пользователь, чтобы выполнить регистрацию для каждого компьютера, как это делает MSI после запроса учетных данных администратора.

Тогда я подумал, что для регистрации после установки либо (а) найти способ изнутри приложения повысить привилегии, предложив ввести учетные данные администратора, что позволит ему написать HEKY_LOCAL_MACHINE (это возможно?), (Б) включить опция в установщике, которая при запуске, когда приложение уже установлено и не зарегистрировано, проходит регистрацию, как при обычной установке. Затем он запросит учетные данные администратора, и жизнь снова станет хорошей. В качестве альтернативы (c) создайте отдельный MSI, который просто выполняет регистрацию, установите его вместе с программой и вызовите этот MSI из программы, когда пользователь выберет команду «Register ...» в программе.

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

Как это обычно делается? Или установки для отдельных машин обычно сопровождаются регистрациями для отдельных машин?

Ответы на вопрос(2)

Ваш ответ на вопрос