У меня есть приложение, которое установит другое приложение. Это легко сделать, запустив setup.exe этого приложения с помощью ShellAPI в моей программе.Откройте мастер удаления приложения для InstallAware
Однако, если это внешнее приложение уже существует, я хотел бы сначала удалить его. Я могу сделать это сам, открыв панель управления, найдя приложение, а затем некоторые опции меню «Удалить» или «Восстановить». При нажатии на один из них откроется мастер InstallAware для этого приложения.
Могу ли я запустить этот мастер из своего приложения? Пользователю все равно придется щелкнуть и подтвердить все, но я пытаюсь объединить шаги, необходимые для удаления и переустановки новой/новой версии этого внешнего приложения. Я не могу найти что-то вроде uninstall.exe для запуска. Что выполняется с помощью ссылки на панели управления для удаления приложения?
Используя диспетчер задач, я смог найти, что application.exe для InstallAware находится в виде 'C: \ ProgramData \ {170EC0AA-F47B-478E-9124-108BF7C47E71}'. Если я просто запустил этот EXE, откроется деинсталлятор. Как это определяется и создается? Существует несколько папок с таким GUID. Как я могу определить, какой из них мне нужен? – ikathegreat
Вы можете получить эту информацию из реестра: http://stackoverflow.com/questions/10122761/where-are-all-possible-locations-of-uninstallstring-registry-entries –
Вид зависит от технологии установки, используемой другое приложение. Вам нужно будет больше узнать об этом. Что делать, если версия установлена более поздней, чем версия, которую вы поставляете. Вашим пользователям не понравится, что вы удалили версию N + 1 и заменили версией N. Что делать, если пользователь хочет сохранить обе версии N и N + 1. Я не думаю, что кто-нибудь может дать вам подробный совет, пока у вас не будет более подробной информации. –