Как: разобрать запись реестра UninstallString

В HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ находится список установленных программ на моей машине (по крайней мере большинство из них). Там есть строковое значение с именем UninstallString, в котором есть то, что вам нужно запустить, чтобы удалить программу.
Дело в том, что не каждый установщик записывает одинаковую информацию, но Windows знает, как анализировать эту строку для запуска деинсталлятора. .
Мои вопросы: кто-нибудь знает, как разобрать эту строку? То есть, какие возможные значения она может получить? и если нет, то где я могу найти такую ​​информацию? Я безуспешно гуглил, наверное, я не ищу правильных терминов.


person sebagomez    schedule 04.10.2008    source источник
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
comment
Я думаю, что ссылка, которую вы разместили, не работает... Я не могу зайти на страницу - person sebagomez; 04.10.2008
comment
Я повторил ссылку здесь, и это работает для меня. Во всяком случае, соответствующая информация приводится в любом случае. - person Matthew Scharley; 04.10.2008
comment
У меня были проблемы с доступом к MSDN из Chrome... сначала нужно было перейти на главную страницу, и вот я там - person sebagomez; 04.10.2008