Sprache: C#
Dieses C# Snippet findet zahlreiche Informationen zum installierten Antivirenprogramm. Alternativ kann es auch die aktive Firewall oder den Spywareschutz erkennen.
* Die Funktion [b]GetAntiVirusInfoString()[/b] (empfohlen) liefert einen String mit Informationen zum aktuell installierten Virenschutz, in der [b]Form $name: $value[/b], getrennt mit Zeilenumbrüchen.
* Die Funktion [b]GetAntiVirusInfo()[/b] liefert eine NameValueCollection mit Informationen zum aktuell installierten Virenschutz.
Der Übergabeparameter [b]product[/b] beider Funktionen kann verwendet werden um entweder das [b]AntiVirusProduct, AntiSpywareProduct oder FirewallProduct[/b] zu ermitteln.
Unter Windows XP ist die Abfrage nach [b]"root\SecurityCenter2"[/b] eventuell auszutauschen durch "root\SecurityCenter".
Beispielanwendung:
[code]MessageBox.Show(GetAntiVirusInfoString());[/code]
// Benötigte using-Direktiven
// falls noch nicht vorhanden, ist system.management.dll auch einzubinden
using System;
using System.Collections.Specialized;
using System.Management;
/// <summary>
/// Gibt einen String zurück, der Informationen über den aktuell
/// installierten Virenschutz enthält. Der String ist in der Form $name: $value formatiert.
/// </summary>
/// <param name="product">Spezifizierung der zu durchsuchenden Klasse
/// [AntiVirusProduct, AntiSpywareProduct, FirewallProduct]</param>
/// <returns>String mit den gefundenen Informationen zur gewählten Klasse, in der Form $name: $value</returns>
public static string GetAntiVirusInfoString(string product = "AntiVirusProduct")
{
// NameValueCollection holen
NameValueCollection avCollection = GetAntiVirusInfo(product);
// String, in welchen die Ausgabe geschrieben wird
String output = String.Empty;
foreach (string key in avCollection.AllKeys)
{
// Schlüssel - Wert Paare an den Ausgabestring anfügen (im Schema $name: $value)
output += key + ": " + avCollection[key] + Environment.NewLine;
}
return output;
}
/// <summary>
/// Gibt eine NameValueCollection zurück, die Informationen über den aktuell
/// installierten Virenschutz enthält
/// </summary>
/// <param name="product">Spezifizierung der zu durchsuchenden Klasse
/// [AntiVirusProduct, AntiSpywareProduct, FirewallProduct]</param>
/// <returns>NameValueCollection mit den gefundenen Informationen zur gewählten Klasse</returns>
public static NameValueCollection GetAntiVirusInfo(string product = "AntiVirusProduct")
{
// Sucht im WMI Namespace nach der gewünschten Klasse
// (anwendbar für AntiVirusProduct, AntiSpywareProduct, FirewallProduct)
// Für Windows XP Systeme ist SecurityCenter2 durch SecurityCenter auszutauschen
ManagementObjectSearcher objSearcher =
new ManagementObjectSearcher("root\SecurityCenter2", "SELECT * FROM " + product);
// NameValueCollection, in der das Ergebnis gespeichert wird
NameValueCollection outputCollection = new NameValueCollection();
foreach (ManagementObject queryObj in objSearcher.Get())
{
foreach (PropertyData propertyData in queryObj.Properties)
{
// Gefundene Properties zur Collection hinzufügen
outputCollection.Add(propertyData.Name.ToString(), propertyData.Value.ToString());
}
}
return outputCollection;
}
// Benötigte using-Direktiven
// falls noch nicht vorhanden, ist system.management.dll auch einzubinden
using System;
using System.Collections.Specialized;
using System.Management;
/// <summary>
/// Gibt einen String zurück, der Informationen über den aktuell
/// installierten Virenschutz enthält. Der String ist in der Form $name: $value formatiert.
/// </summary>
/// <param name="product">Spezifizierung der zu durchsuchenden Klasse
/// [AntiVirusProduct, AntiSpywareProduct, FirewallProduct]</param>
/// <returns>String mit den gefundenen Informationen zur gewählten Klasse, in der Form $name: $value</returns>
public static string GetAntiVirusInfoString(string product = "AntiVirusProduct")
{
// NameValueCollection holen
NameValueCollection avCollection = GetAntiVirusInfo(product);
// String, in welchen die Ausgabe geschrieben wird
String output = String.Empty;
foreach (string key in avCollection.AllKeys)
{
// Schlüssel - Wert Paare an den Ausgabestring anfügen (im Schema $name: $value)
output += key + ": " + avCollection[key] + Environment.NewLine;
}
return output;
}
/// <summary>
/// Gibt eine NameValueCollection zurück, die Informationen über den aktuell
/// installierten Virenschutz enthält
/// </summary>
/// <param name="product">Spezifizierung der zu durchsuchenden Klasse
/// [AntiVirusProduct, AntiSpywareProduct, FirewallProduct]</param>
/// <returns>NameValueCollection mit den gefundenen Informationen zur gewählten Klasse</returns>
public static NameValueCollection GetAntiVirusInfo(string product = "AntiVirusProduct")
{
// Sucht im WMI Namespace nach der gewünschten Klasse
// (anwendbar für AntiVirusProduct, AntiSpywareProduct, FirewallProduct)
// Für Windows XP Systeme ist SecurityCenter2 durch SecurityCenter auszutauschen
ManagementObjectSearcher objSearcher =
new ManagementObjectSearcher("root\SecurityCenter2", "SELECT * FROM " + product);
// NameValueCollection, in der das Ergebnis gespeichert wird
NameValueCollection outputCollection = new NameValueCollection();
foreach (ManagementObject queryObj in objSearcher.Get())
{
foreach (PropertyData propertyData in queryObj.Properties)
{
// Gefundene Properties zur Collection hinzufügen
outputCollection.Add(propertyData.Name.ToString(), propertyData.Value.ToString());
}
}
return outputCollection;
}
Alte URL:
/snippet/antivirenprogramm-ermitteln/1610