2010-08-27 2 views
5

Когда во время установки моего программного обеспечения запускается антивирусное программное обеспечение, некоторые компоненты не устанавливаются правильно. Я всегда говорю пользователям сначала отключить его. Но они забывают, а затем я ломаю себе голову, пытаясь понять, что пошло не так. Есть ли функция Delphi, о которой любой знает, может определить, работает ли программное обеспечение AntiVirus, поэтому я могу предупредить пользователя перед началом установки?Delphi - Как определить наличие антивирусного программного обеспечения?

+0

Интересная проблема - какое программное обеспечение вы пишете? –

+1

Если это повторяющаяся проблема, я бы сказал, что проблема - это, вероятно, ваш установщик. Обратите внимание, что из-за удивительности Delphi при создании автономных exe, которые не нуждаются в раздутом времени автономной работы, в ней написано много вирусов и вредоносных программ. Таким образом, довольно часто, когда антивирусное программное обеспечение отпечатывает отпечатки некоторых частей вируса, которые также встречаются в других программах delphi. Просто выключение антивируса не поможет - он просто вмешался, как только он был снова включен. – GrandmasterB

+1

@GrandmasterB: ... вместо того, чтобы полагаться на раздутые промежутки времени, delphi создает индивидуальные исполняемые файлы, которые, конечно же, намного более велики, чем одна большая исполняемость и крошечные отдельные исполняемые файлы. – snemarch

ответ

3

С XPsp2 есть центр безопасности, который регистрирует, есть ли известный антивирус.

Afaik это функция над WMI api, к которой можно получить доступ через Winapi. (и у Джедаев есть заголовки).

Я нашел VBScript здесь: http://blogs.msdn.com/b/alejacma/archive/2008/05/12/how-to-get-antivirus-information-with-wmi-vbscript.aspx

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

+0

Убедитесь, что вы читаете комментарии, потому что эта точная часть кода не будет работать с Vista SP1 - они удалили пространство имен, в котором вы нуждаетесь. –

+0

В комментариях есть и альтернативы. Не из них довольно, но вся эта ситуация не такова. (как я уже сказал, установлены и «на» тоже разные вещи) –

+0

Должен открыто признаться, что я отказался от этого. Это страшная, страшная идея заставить пользователей уменьшить объем защиты своих антивирусных предложений. Помните: 100 ложных срабатываний по-прежнему лучше, чем один ложный, и, как правило, эвристика * хороша *. –

0

У нас был успех, проверяя запущенные процессы для любого процесса, который мы определили прежде, чем AV-программа. (Вы можете перечислить список процессов, используя простой код, который вы можете найти прибегая к помощи что-то список запущенных процессов Delphi)

Если мы находим один, мы говорим пользователю и отказываются продолжать ...

Строить наш список процессов, которые мы знаем, AV, мы устанавливаем пробные версии AV-программ, а затем просматриваем список процессов (либо в диспетчере задач, либо используя наш код перечислимых процессов). Их не сложно обнаружить. и вы можете закрыть AV-программы и посмотреть, исчезнут ли процессы, которые вы идентифицируете. (Process Explorer полезна: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)

К примеру, некоторые из процессов, которые мы в настоящее время искать включают McShield (McCaffe), Nprotect (Norton), PCCNTMON (Trend Micro) и т.д.

Очевидно, что это выигранный» t поймать ВСЕ AV-программы, но если вы сделаете это выше с основными поставщиками (Norton, McCaffe, Trend Micro, ZA и т. д.), у вас будет большой процент AV-программ в покрываемой области.

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

+0

Pretty darn fragile - вам будет лучше * всегда * показывать заставку (что * не * выглядит как EULA или что-то еще), сообщающее пользователям, что работает антивирус во время установки программное обеспечение может быть проблематичным. – snemarch

1

некоторые компоненты не правильно установить

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

1

Я вижу, что это «старый» вопрос, но ... я нашел его Retreive Antivirus Information using WMI

+1

Хотя это может теоретически ответить на вопрос, [было бы предпочтительно] (http://meta.exetchange.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. – Jack

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