Saludos, depende del programa que utilices para crear el instalador. Si usas Inno Setup de Jordan Rusell
http://www.jrsoftware.org/isinfo.php
Puedes crear claves en el registro que luego serán eliminadas al momento que desinstalen la aplicación,
Puedes tomar como referencia esta página:
http://www.downloadatoz.com/utility_directory/inno-setup/manual/topic_registrysection.htm
Código:
[Registry]
Root: HKCU; Subkey: "SoftwareMy Company"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "SoftwareMy CompanyMy Program"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SoftwareMy Company"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "SoftwareMy CompanyMy Program"; Flags: uninsdeletekey
Por ejemplo si utilizas la opción uninsdeletekeyifempty, eliminará el registro únicamente si la clave del registro se encuentra vacia.
Cuando corras tu programa, revisa el registro que creaste con el instalador, como tiene una clave incorrecta o vacia, muestra el formulario de registro. Esto es facil de implementar si utilizas el inicio por medio del procedimiento main.
Espero que te sea de utilidad