2012-05-18 2 views
0

Я пытаюсь получить уведомление о приложении, которое полностью установлено/удалено , используя класс WMI win32_product. Есть ли другой способ сделать это в C#?Есть ли способ получить уведомление, когда какое-либо приложение полностью установлено или удалено

+0

Ваша заявка или стороннее применение? Если ваш, вы пытаетесь контролировать из * в пределах * того же приложения или из другого? –

+0

Есть ли журнал установки? Вы можете проверить, какое значение возвращает поток основного двигателя. –

+0

Есть ли причина, по которой вам нужно найти альтернативу WMI? –

ответ

1

Если вы написали установщик самостоятельно, вы можете контролировать, что происходит при удалении. Этого достаточно?

0

Я думаю, вам просто нужно вызвать файл удаления установки/по Process.Start и ждать, пока он не закончится

0

Для общей статистической информации, а также для установки/unistall вы можете использовать DeskMetrics, который также бесплатно варианта зарядки.

0

Прошу прощения, но я уверен, что вы не можете. WMI - это просто база данных о вашем инвентаре компьютеров. Если приложение установлено успешно или нет, полностью зависит от установщика, используемого приложением.

Если установщик поврежден, он все равно сообщит, что установка прошла нормально, но программа на самом деле не работает.

Microsoft Installers (MSI) достаточно надежна, так как имеет функцию отката. Если во время установки возникает ошибка, программа установки откатит все изменения, которые она сделала до сих пор, и поэтому не будет отображаться в WMI.

Надеюсь, что это прояснилось.

------ EDIT

На самом деле, в зависимости от объема вашего проекта .. Вы можете написать инсталлятор обертку (нету сделал это перед собой, но должно быть выполнимо).

Почти все известные установщики (MSI, Installshield и т. Д.), Все возвращают код результата, когда его выполнение выполняется.

Если вы написали приложение, которое выполнило установщик, вы сможете получить код результата и тем самым узнать, были ли установки успешными. Успешная установка обычно возвращает 0.

Но для этого вам необходимо убедиться, что все установки выполняются вашей оберткой, а не напрямую, и, опять же, она не на 100% надежна, поскольку она все еще зависит от установщик.

Just a мысль

Смежные вопросы