Cuando mi software está instalado, a través de una MSI, crea algunas claves de registro dentro de HKLM. Cuando las personas usan el software, sus preferencias individuales se guardan en HKCU. Cuando se desinstala el software, las claves de registro HKLM y HKCU se eliminan, pero estoy pensando que solo se eliminarán las claves HKCU para el usuario que ejecuta la desinstalación. ¿Es esto correcto? De ser así, ¿cómo me aseguro de que se eliminen las subclaves de HKCU para otras personas que hayan usado mi software en la misma máquina?¿Cómo eliminar las claves de registro HKCU al desinstalar el software?
ACTUALIZACIÓN: Las "preferencias individuales" que se guardan en mi caso no son realmente las configuraciones que el usuario ha elegido, sino más bien los datos que la aplicación ha almacenado mientras se ejecuta para ese usuario. Por lo tanto, no se trata de datos que el usuario quiera conservar. Parece correcto eliminarlo en la desinstalación, ya que no tendrá ningún uso si la aplicación se reinstala. Así que supongo que la mejor sugerencia hasta ahora es Ed's: don't use the registry, aunque eso no soluciona la pregunta original.
¿No puedo simplemente recorrer cada uno de los subárboles de HKEY_USERS y eliminar mis datos? ¿O es eso lo que dices que será lento? – Rory
Es peligroso eliminar datos de esta manera en escenarios con perfiles itinerantes. Estoy un poco confundido con los detalles, pero creo que daña las comparaciones de marcas de tiempo y puede hacer que los datos de perfil se pierdan si se selecciona el perfil incorrecto como el ganador de la "fusión". –
OK, reconozca que * no * 'sus datos'. Una vez que está en una sección de registro de usuarios, son los * datos * del usuario. Y sí, cargar y descargar las colmenas de usuario separadas es bastante lento. Y necesita SCRUPULOUSLY no hacer nada con los perfiles de cuenta del sistema, por lo que primero debe identificar los perfiles de usuario regulares. Y como menciona MichaelU, si los perfiles itinerantes están en uso, puede dañar las cosas que no pertenecen a su aplicación (¿realmente desea que un grupo de TI de clientes lo llame con una factura para reconstruir todos sus perfiles de usuario?). ESTA ES UNA MALA IDEA. – DaveE