Получение информации об антивирусном продукте в C# на платформе x64 с помощью WMI
Привет,
На самом деле это мой первый пост, и я новичок в этом деле. C#.NET Программирование. Я искал по всему MSDN и интернету, но не мог найти ответа.
Я пишу небольшую программу, чтобы показать пользователю информацию о антивирусе, установленном на его машине Windows 7 или Vista x64.
Я пытаюсь обнаружить "Kaspersky internet security", который находится на моей собственной машине.(Windows 7 x64).kaspersky-это WMI, зарегистрированный как в антивирусе, так и в internet security и antispy.
Я нашел этот пост - http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/d555f390-dd75-4604-b653-df0a9f4c2fa3/,
но это не сработало для x64. Похоже, что путь к "корень безопасности\"отличается в x64 версии Windows или что-то в этом роде.
Следующий код работает для 32-разрядной версии Windows XP, Но не для 7 x64.
Есть идеи?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Management; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { label1.Text = "Company =" + Antivirus("companyName"); label2.Text = "Name =" + Antivirus("displayName"); } private string Antivirus(string type) { string computer = Environment.MachineName; string wmipath = @"\\" + computer + @"\root\SecurityCenter"; try { ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmipath, "SELECT * FROM AntivirusProduct"); ManagementObjectCollection instances = searcher.Get(); //MessageBox.Show(instances.Count.ToString()); foreach (ManagementObject queryObj in instances) { return queryObj[type].ToString(); } } catch (Exception e) { MessageBox.Show(e.Message); } return null; } } }
priyanmuthu
Кроме того, как узнать, является ли антивирус современным?