В HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
находится список установленных программ на моей машине (по крайней мере большинство из них). Там есть строковое значение с именем UninstallString, в котором есть то, что вам нужно запустить, чтобы удалить программу.
Дело в том, что не каждый установщик записывает одинаковую информацию, но Windows знает, как анализировать эту строку для запуска деинсталлятора. .
Мои вопросы: кто-нибудь знает, как разобрать эту строку? То есть, какие возможные значения она может получить? и если нет, то где я могу найти такую информацию? Я безуспешно гуглил, наверное, я не ищу правильных терминов.
Как: разобрать запись реестра UninstallString
comment
Быстро просмотрев мой реестр, это все пути. Можете ли вы привести примеры, в которых строка не является путем или исполняемым файлом в $PATH?
- person Matthew Scharley   schedule 04.10.2008
comment
Я уже удалил, но у Visual Studio 2003 было много путей... Думаю, это тот случай, который я нашел
- person sebagomez   schedule 04.10.2008
comment
Visual Studio 2008, кажется, определяет UninstallPath и UninstallString, но они идентичны, и в каждом ключе есть только один путь, поэтому здесь не должно быть никаких проблем. Не могу сказать за 2003 год, у меня нет копии для проверки.
- person Matthew Scharley   schedule 04.10.2008
Ответы (1)
Взгляните на эту ссылку из MSDN, объясняющую процедуры установки/удаления, в частности, пункт № 6 «Правильная поддержка установки и удаления программ».
Как выдержка из таблицы там:
Key Name | Key Type | Description UninstallPath | REG_EXPAND_SZ | Full path to the application's uninstall program
Несмотря на то, что он говорит «полный путь», многие приложения сокращают его, если программа находится в $PATH
, особенно с такими вещами, как msiexec.exe
.
person
Matthew Scharley
schedule
04.10.2008
Я думаю, что ссылка, которую вы разместили, не работает... Я не могу зайти на страницу
- person sebagomez; 04.10.2008
Я повторил ссылку здесь, и это работает для меня. Во всяком случае, соответствующая информация приводится в любом случае.
- person Matthew Scharley; 04.10.2008
У меня были проблемы с доступом к MSDN из Chrome... сначала нужно было перейти на главную страницу, и вот я там
- person sebagomez; 04.10.2008