none
Сервис перехвата событий инсталяции RRS feed

  • Вопрос

  • Доброе время суток.

    Вопрос вот в чем. Реально ли сделать сервис который "смотрел" бы на события инсталяции на компе. Другими словами мне необходимо реализовать следующее. Необходимо реолизовать сервис который фиксировал бы всё что инсталируется. Как известно инсталяция имеет несколько этапов. К примеру изменение регистров, копирование файлов, вывод сообщения пользователю. Мне необходимо все эти этапы перехватывать и вносить в базу их результат ошибка или успешно сделано. Незнаю реально ли это или нет поэтому прошу помошьи у людей знающих больше. Может даже кто-то сталкивался с задачей идентичной с моей. 

    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:04 MSDN Forums consolidation (От:Visual C#)
    3 августа 2010 г. 17:59

Ответы

  • Добрый вечер.

    Все события в ОС, в том числе и те, которые происходят при установке различных приложений на ПК заносятся в так называемый Журнал событий. Я думаю нужно завести для своего приложения отдельную БД. Далее, анализируя изменения в Журнале событий ОС, производить анализ уже имеющихся данных в нашей БД и, при необходимости, заносить новые данные в нее.

    Я думаю, что нужно копать в этом направлении.

    Вот только надо придумать как производить определение момента, когда надо произвести очередное "сканирование" Журнала событий.

    Еще одно НО..."сканирование" - это не есть хорошо. Возможно есть способ произодительнее.

    • Помечено в качестве ответа I.Vorontsov 18 августа 2010 г. 7:13
    6 августа 2010 г. 22:51

Все ответы

  • Добрый вечер.

    Все события в ОС, в том числе и те, которые происходят при установке различных приложений на ПК заносятся в так называемый Журнал событий. Я думаю нужно завести для своего приложения отдельную БД. Далее, анализируя изменения в Журнале событий ОС, производить анализ уже имеющихся данных в нашей БД и, при необходимости, заносить новые данные в нее.

    Я думаю, что нужно копать в этом направлении.

    Вот только надо придумать как производить определение момента, когда надо произвести очередное "сканирование" Журнала событий.

    Еще одно НО..."сканирование" - это не есть хорошо. Возможно есть способ произодительнее.

    • Помечено в качестве ответа I.Vorontsov 18 августа 2010 г. 7:13
    6 августа 2010 г. 22:51
  • А средствами VisualStudio  это реализовать никак? Нет каково-нибудь Interop-a или реализовать это средствами Installer-a? Я это представляю себе так. Запускается инсталятор. В системе же происходит какое-то собитие, и например инсталятор записывает в реестры тоже событие :) Наверное это  с области фантастики :)
    9 августа 2010 г. 17:36
  • Думаю стоит хорошенько покопаться в библиотеке msdn'а на эту тему. Например, внимательно почитать про пространство имен System.Configuration.Install, оно предоставляет классы, позволяющие писать установщики. Возможно там что-то есть.
    10 августа 2010 г. 21:48
  • Можно ли создать при помощьи C# проект который устанавливает msi пакет с возможностью отследить момент когда что-то пошло не так и установка невозможна, например вывести в файл что пользователью нехватает прав.

    24 сентября 2010 г. 8:13
  • Лог с ошибкой и сам msiexec пишет. Посмотри http://technet.microsoft.com/en-us/library/cc759262%28WS.10%29.aspx, секцию "To set logging level".
    24 сентября 2010 г. 12:52
  • Можно ли задать задать как-то те самые ключи что-бы в лог выводилось какой файл куда копируется при инсталяции? на данный момент выводится только то что это происходит

    Action ended 10:30:00: InstallFiles. Return value 1.

     MSI (s) (1C:0C) [10:30:00:648]: Dir (source): Key: D_1 , Object: C:\ , LongSubPath: Config.Msi\ , ShortSubPath: DD_1\

    А что куда скопировалось неизвестно.

     

     

    24 сентября 2010 г. 13:47
  • Попробуй /L*v . Если с ним не напишет - то нельзя.
    24 сентября 2010 г. 14:54
  • Значит нельзя. Так как невыводит.
    26 сентября 2010 г. 14:56