Vou postar meu grande artigo sobre isso, as informações estão lá, mesmo que não sejam explicadas.
Aqui está um pequeno artigo em que tenho trabalhado e, apesar de não abordar sua pergunta diretamente, pode ser útil. Apenas preste atenção nas chaves de registro que menciono e você pode geralmente excluí-las, assim como na pasta C: \ Arquivos de Programas \ Aplicativo para enganar os instaladores para que pensem
Tudo o que você queria saber sobre Adicionar / Remover Programas no Windows. Você já se perguntou como o Windows apresenta e usa os programas Adicionar / Remover? Ou talvez você tenha a necessidade de enumerar esses valores você mesmo? Aqui estão algumas informações úteis sobre como ele funciona, como usá-lo e alguns truques que você pode gostar.
Tudooquevocêvêemadicionareremoverprogramas(XP,Vista,7confirmados)égravadonoregistroem**HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall**comoumasubchave.
Por exemplo, eu tenho a subchave CutePDF Writer Installation com as chaves e valores:
Agora, de interesse aqui é o valor de UninstallString. Quando você clica em “desinstalar” em Adicionar / Remover programas, o que ele faz é chamar esse valor e executá-lo. Você pode fazer o mesmo manualmente, por exemplo, com CutePDF, se você executar “C: \ Arquivos de Programas (x86) \ Software Acro \ CutePDF Writer \ Setup64.exe / uninstall” na linha Executar ou prompt de comando, você receberá o desinstalador. Você também pode encontrar opções adicionais de desinstalação executando o comando com o comando /? Alterne ou execute o seguinte no prompt do cmd:
Cd C: \ Arquivos de programas (x86) \ Acro Software \ CutePDF Writer Setup64.exe /?
Note que este é um mau exemplo, pois o switch não retorna nada! Mas geralmente isso vai funcionar ou você pode simplesmente chamar o unistaller manualmente dessa maneira. Agora, vamos analisar um possível problema com a lista Desinstalar, você verá alguns arquivos com nomes neste formato: {AFF7153F-C4AA-4C48-AEE9-8611D276CE86}
É assim que um instalador MSI escreve seu nome no Registro, em vez de escrever o nome amigável que um instalador EXE grava, ele grava seu GUID.
Isto não é realmente um problema, tanto quanto uma dificuldade na leitura das chaves. Existem algumas maneiras de ler isso. Um, há um nome de valor DisplayName que terá o valor mais amigável de (neste exemplo) Quest ActiveRoles Management Shell para o Active Directory (x64).
Outra abordagem é que o Windows grava uma versão “compactada e hash” do GUID em outra parte do Registro.
Para Hash o valor, pegue o GUID {AFF7153F-C4AA-4C48-AEE9-8611D276CE86} e inverta cada conjunto de valores hexadecimais. AFF7153F torna-se F3517FFA, C4AA torna-se AA4C e desativa o GUID até que você tenha o seguinte: {F3517FFA-C4AA-84C4-9EEA-68EC672D1168}
Agora, solte o {, -, e} para obter F3517FFAC4AA84C49EEA68EC672D1168 Agora você tem o GUID compactado e hash que pode ser comparado a outra chave.
Agora você deve conseguir encontrar esse novo GUID no seguinte local do Registro: HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Instalador \ Produtos
E com certeza, lá está ela:
Comasseguinteschaves:
Novamente, você pode procurar em ProductName o nome do aplicativo.
Dica de bônus: você pode iniciar os programas Adicionar / Remover digitando appwiz.cpl na pesquisa inicial, linha de execução ou um prompt de comando.