Как зарегистрировать мое приложение Winforms как антивирус в WMI, используя C#?
Последние несколько месяцев я создавал антивирусное приложение, используя ClamAV, приложение работает нормально.
У меня есть другое программное обеспечение, которое обнаруживает на компьютере Security, Spywares и Firewall. При запуске сканирования он обнаруживает ESAT Smart Security 8.0, который уже установлен на моем компьютере, а моего антивируса нет в списке. Проведя некоторые исследования, я обнаружил, что этот кусок кода обнаруживает наличие антивируса в машине.
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(@"\\MyMachineName\root\SecurityCenter2", "SELECT * FROM AntivirusProduct");
ManagementObjectCollection objectCollection = managementObjectSearcher.Get();
string DisplayName = String.Empty;
if (managementObjectSearcher.Get().Count > 0)
{
foreach (ManagementObject managementObject in managementObjectSearcher.Get())
{
DisplayName = managementObject["displayName"].ToString();
}
}
Теперь я считаю, что для того, чтобы мое приложение выглядело как антивирус, мне нужно было бы сделать несколько записей в SecurityCenter2 или WMI. Я попробовал следующий код, чтобы добиться этого
public static void RegisterAsAntivirus()
{
string computer = Environment.MachineName;
string wmipath = @"\\" + computer + @"\root\SecurityCenter2";
ManagementScope oScope = new ManagementScope(wmipath);
oScope.Connect();
ManagementPath oPath = new ManagementPath("AntivirusProduct");
ObjectGetOptions oGetOp = new ObjectGetOptions();
ManagementClass oProcess = new ManagementClass(oScope, oPath, oGetOp);
PropertyDataCollection p = oProcess.Properties;
// Obtain in-parameters for the method
oProcess.SetPropertyValue("displayName", "antivirusname");
oProcess.SetPropertyValue("instanceGuid", "guid");
oProcess.SetPropertyValue("pathToSignedProductExe", @"path");
oProcess.SetPropertyValue("pathToSignedReportingExe", "");
oProcess.SetPropertyValue("productState", 266240);
oProcess.Put();
}
Но даже приведенные выше строки кода не работают для меня. И я все еще на том же уровне. Любая помощь в этом аспекте будет очень признателен.
Моя машина работает под управлением Windows 7, а C# - мой язык программирования.