Registro de aplicación por máquina

Estoy creando un instalador con WiX para instalar un programa, por máquina (no por usuario), y les da la opción de registrar el programa. El registro implica ingresar el nombre de usuario y la organización (o aceptar algunos valores predeterminados de la configuración de Windows) e ingresar una clave de registro válida. Cuando se valida la clave de registro, escribo la configuración del registro en el área HKEY_LOCAL_MACHINE con esta información. En Windows, cuando se ejecuta el MSI, solicita automáticamente una contraseña de administrador para poder establecer valores de registro en HKEY_LOCAL_MACHINE. Hasta ahora la vida es buena ...

Incluyo una opción en el MSI para darle al usuario la opción de diferir el registro hasta un momento posterior. Sin embargo, si el usuario es un usuario normal y está ejecutando la aplicación, si tengo un cuadro de diálogo en la aplicación que solicita nombre / org / clave de producto, Windows no escribe la información en HKEY_LOCAL_MACHINE. Por lo tanto, un usuario no puede usar la aplicación en sí, ejecutándose como un usuario normal, para realizar un registro por máquina como lo hace el MSI después de solicitar las credenciales de administrador.

Entonces pensé, para el registro posterior a la instalación, ya sea (a) encontrar una forma desde dentro de la aplicación para elevar los privilegios, con una solicitud de credenciales de administrador, que le permita escribir HEKY_LOCAL_MACHINE (¿es esto posible?), (B) incluir una opción en el instalador que, cuando se ejecuta y la aplicación ya está instalada y no registrada, recorre el registro como lo haría durante una instalación normal. Luego solicitaría las credenciales de administrador y la vida es buena nuevamente. Alternativamente, (c) cree un MSI separado que solo haga el registro, instálelo con el programa y llame a este MSI desde el programa cuando el usuario seleccione el comando "Registrar ..." en el programa.

No he visto ninguno de estos enfoques realizado por ninguna aplicación antes, por lo que no estoy seguro de que sea un buen enfoque. Aparte de eso, sin embargo, no estoy seguro de cómo, después de la instalación, puedo permitir convenientemente que el usuario haga un registro de la aplicación por máquina. Idealmente, me gustaría poder hacerlo desde un comando dentro de la aplicación, pero volver a ejecutar la instalación MSI sería mínimamente aceptable.

¿Cómo se hace esto normalmente? ¿O las instalaciones por máquina incluso suelen ir acompañadas de registros por máquina?

Respuestas a la pregunta(2)

Su respuesta a la pregunta