Delphi - Как я могу определить наличие антивирусного программного обеспечения? - PullRequest
5 голосов
/ 28 августа 2010

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

Ответы [ 5 ]

3 голосов
/ 20 февраля 2011

Я только что написал в своем блоге статью, в которой рассказывается, как обнаружить наличие антивирусного программного обеспечения в выпусках Windows Desktop (XP, Vista и 7).

Getting the installed Antivirus, AntiSpyware and Firewall software using Delphi and the WMI

3 голосов
/ 28 августа 2010

Начиная с XPsp2, существует центр безопасности, который регистрирует наличие известного антивируса.

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

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

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

1 голос
/ 28 ноября 2011

Я вижу, что это "старый" вопрос, но ... я нашел его Восстановите антивирусную информацию, используя WMI

1 голос
/ 28 августа 2010

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

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

0 голосов
/ 28 августа 2010

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

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

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

Например, некоторые из процессов, которые мы ищем в настоящее время, включают MCShield (McCaffe), NPROTECT (Norton), PCCNTMON (Trend Micro) и т. Д.

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

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

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