Запуск деинсталлятора из кода - PullRequest
3 голосов
/ 21 июля 2010

Я хотел бы добавить кнопку «Удалить» в мою программу, которая запустит программу удаления, чтобы удалить программу, а затем сразу же закроется. Как лучше всего а) определить, присутствует ли деинсталлятор, и б) найти правильный деинсталлятор и запустить его?

Могу ли я использовать реестр надежным способом? Я вспоминаю, как раньше использовал реестр для исправления некоторых неработающих установок, и думал, что смогу перебрать записи и определить соответствующую, но я беспокоюсь, что использование реестра может быть ненадежным и / или работать на всех системах?

Другая мысль состоит в том, что я мог бы на самом деле сохранить информацию об удалении в реестр во время самой установки, а затем использовать эту информацию, чтобы каким-то образом найти правильный удаления. Кажется, это был бы самый надежный метод, но есть ли такой идентификатор, который я мог бы сохранить, чтобы потом передать обратно установщику Windows?

1 Ответ

3 голосов
/ 21 июля 2010

Поскольку вы установили это с помощью установщика Windows, я буду считать, что вы распространяете свое приложение с помощью MSI.Тем не менее, вы можете вызвать msiexec / x {ProductCode} из вашего приложения, чтобы начать удаление.Вы можете получить код продукта, попросив установщика записать в ключ / значение реестра, которое может прочитать ваше приложение, или вы можете жестко запрограммировать его или свой код UpgradeCode в приложении.Если вы жестко запрограммировали код UpgradeCode, вам придется обратиться к API установщика Windows, чтобы узнать установленный код продукта для этого кода UpgradeCode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...