Это не пуленепробиваемый, но если вы посмотрите под
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Большинство продуктов, которые оставляют след в апплете «Установка и удаление программ», будут иметь здесь запись.
Если вы откроете значение «UninstallString», оно будет включать путь к исполняемому файлу, который вызывается для выполнения удаления. Если это msiexec, то у вас есть продукт, установленный установщиком Windows. В противном случае вам может понадобиться получить исполняемый файл и проверить ресурс версии файла, чтобы получить немного больше информации. Обратите внимание, что это может привести к неубедительному результату, если, например, деинсталлятор является загрузчиком exe, который последовательно объединяет набор MSI-пакетов.
Если вам нужно выяснить, какой инструмент разработки MSI использовался для создания MSI, вы можете сделать это из потока сводной информации пакета .msi в uninstallstring, но не все инструменты разработки заполняют это значение .