Benutzer mit den meisten Antworten
Antivirenprogramm [Status ermitteln, Name ermitteln, usw.]

Frage
-
Hallo Community,
Ich möchte gerne mit C# Windows Forms ein ermitteln ob überhaupt ein Antivirenprogramm installiert ist oder nicht.
Wenn ja, auch Informationen wie Name, Produkt ID, usw..
Wie kann ich das realisieren?
Vielen Dank im vorraus,
MfG ASkuN
Antworten
-
Hallo AS,
binde die "System.Management.dll" ein. Hier noch mal ein BeispielCode mit "SecurityCenter2" (>= Vista SP1) :
using System; using System.Management; using System.Text; using System.Windows.Forms; namespace WinAntivirusDetection { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { InstallierteAntivirusProgrammeAnzeigen(); } // using System.Management; // Verweis einbinden: System.Management.dll public static void InstallierteAntivirusProgrammeAnzeigen() { string wmipathstr = @"\\" + Environment.MachineName + @"\root\SecurityCenter2"; StringBuilder meldung = new StringBuilder(); try { ManagementObjectSearcher searcher = new ManagementObjectSearcher( wmipathstr, "SELECT * FROM AntivirusProduct"); ManagementObjectCollection instances = searcher.Get(); foreach (var item in instances) { meldung.AppendLine("\r\n=============="); foreach (var prop in item.Properties) { meldung.AppendFormat("{0} = '{1}'\r\n", prop.Name, prop.Value.ToString()); } } } catch (Exception e) { MessageBox.Show(e.Message); } MessageBox.Show("Installierte Antivirus-Programme:\r\n" + meldung.ToString()); } } }
ciao Frank- Als Antwort markiert ASkuN Montag, 18. April 2011 10:00
- Bearbeitet Frank Dzaebel Montag, 18. April 2011 10:01
Alle Antworten
-
Hallo AS.,
zum Beispiel über WMI:[Detect Antivirus on Windows using C# - Stack Overflow]
http://stackoverflow.com/questions/1331887/detect-antivirus-on-windows-using-c
ciao Frank -
-
Hi,
nur leider aus einem Grund den ich mir nicht erklären kann (vielleicht mache ich auch was falsch) funktionieren diese Management Objekte in meinem VS2010 nicht
was genau heißt "funktionieren nicht"? Poste doch mal bitte den Code, mit dem Du es versucht hast und dazu dann bitte die genaue und vollständige Fehlermeldung.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Okey...
Meine Imports lauten wie folgt:
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.Diagnostics; using Shield_77x.Properties; using System.Management;
Dazu mein Code von der Funktion:
public static bool AntivirusInstalled() { string wmipathstr = @"\\" + Environment.MachineName + @"\root\SecurityCenter"; try { ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmipathstr, "SELECT * FROM AntivirusProduct"); ManagementObjectCollection instances = searcher.Get(); return instances.Count > 0; } catch (Exception e) { Console.WriteLine(e.Message); } return false; }
Und an Fehlermeldung bekomme ich:
Fehler 1 Der Typ- oder Namespacename "ManagementObjectSearcher" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Fehler 2 Der Typ- oder Namespacename "ManagementObjectSearcher" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Fehler 3 Der Typ- oder Namespacename "ManagementObjectCollection" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
MfG ASkuN -
Hallo AS,
binde die "System.Management.dll" ein. Hier noch mal ein BeispielCode mit "SecurityCenter2" (>= Vista SP1) :
using System; using System.Management; using System.Text; using System.Windows.Forms; namespace WinAntivirusDetection { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { InstallierteAntivirusProgrammeAnzeigen(); } // using System.Management; // Verweis einbinden: System.Management.dll public static void InstallierteAntivirusProgrammeAnzeigen() { string wmipathstr = @"\\" + Environment.MachineName + @"\root\SecurityCenter2"; StringBuilder meldung = new StringBuilder(); try { ManagementObjectSearcher searcher = new ManagementObjectSearcher( wmipathstr, "SELECT * FROM AntivirusProduct"); ManagementObjectCollection instances = searcher.Get(); foreach (var item in instances) { meldung.AppendLine("\r\n=============="); foreach (var prop in item.Properties) { meldung.AppendFormat("{0} = '{1}'\r\n", prop.Name, prop.Value.ToString()); } } } catch (Exception e) { MessageBox.Show(e.Message); } MessageBox.Show("Installierte Antivirus-Programme:\r\n" + meldung.ToString()); } } }
ciao Frank- Als Antwort markiert ASkuN Montag, 18. April 2011 10:00
- Bearbeitet Frank Dzaebel Montag, 18. April 2011 10:01