2014-10-20 3 views
2

Я создаю программное обеспечение, которое обнаруживает угрозы в системе, но для очистки этой системы требуется Microsoft Security Essentials. Поэтому я хочу знать, работает ли в системе Microsoft Security Essentials, поэтому я могу использовать эту утилиту для работы моего программного обеспечения. У меня уже есть это решение, чтобы проверить, установлен ли Microsoft Security Essentials, но мне нужно знать, работает ли он или нет? Заранее спасибо.Как проверить, что Microsoft Security Essential работает в фоновом режиме?

Чтобы Проверьте необходимую безопасность Microsoft Я осуществил следующий код

private static bool DoesMseExist() 
    { 
     string location = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
     using (RegistryKey localMachineX64View = 
        RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, 
        RegistryView.Registry64)) 
     { 
      using (RegistryKey rk = localMachineX64View.OpenSubKey(location)) 
      { 
       foreach (string subKey in rk.GetSubKeyNames()) 
       { 
        using (RegistryKey productKey = rk.OpenSubKey(subKey)) 
        { 
         if (productKey != null) 
         { 
          if (Convert.ToString(productKey.GetValue("DisplayName")) 
           .Contains("Microsoft Security Client")) 
          { 
           return true; 
          } 
         } 
        } 
       } 
      } 
     } 
     return false; 
    } 
+1

возможно дубликат [Как я могу знать, если процесс запущен?] (Http://stackoverflow.com/questions/262280/how-can-i-know-if-a-process-is- running) – Stijn

+2

Используйте System.Management для запроса установленного продукта защиты от вредоносных программ. Используйте экспериментальную программу WMI Code Creator. Google «wmi query antivirus», чтобы узнать больше. –

+0

Возможный дубликат [Проверить статус антивируса в C#] (http://stackoverflow.com/questions/4750507/check-anti-virus-status-in-c-sharp) –

ответ

0

я, наконец, получил ответ об этом, это работали со мной в порядке.

Process[] processlist = Process.GetProcessesByName("msseces");; 
foreach(Process theprocess in processlist){ 
    Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id); 
} 
Смежные вопросы