我想实现类似 XP 的安全中心的 杀毒软件检测功能检测出 软件名称,病毒库版本,更新日期等信息,只是知道要用 WMI 来实现,可是一直都找不到对应的接口请研究过的朋友,给个线索吧。

解决方案 »

  1.   

    我记得WMI类Win32_QuickFixEngineering是查找操作系统sp更新版本的,你看看里面有没有需要的东西.
      

  2.   

    参考:
    Access Windows XP SP2 Security Center via WMI 
    http://blog.csdn.net/jiangsheng/archive/2006/09/18/1234720.aspx 
      

  3.   

    除了察看WMI的相关知识,别无他法。请有经验的人士给与提醒。
      

  4.   

     string getvirus()
            {
                try
                {
                    string myvirus = "";                ManagementObjectSearcher searcher =
                        new ManagementObjectSearcher("root\\SecurityCenter",
                        "SELECT * FROM AntiVirusProduct");                foreach (ManagementObject queryObj in searcher.Get())
                    {
                        MessageBox.Show(queryObj["displayName"].ToString());
                        if (queryObj["displayName"].ToString() != "")
                        {
                            myvirus += "您正在使用" + queryObj["companyName"].ToString() + "的杀毒软件\n\r";
                        }
                        if (queryObj["displayName"].ToString() != "")
                        {
                            myvirus += queryObj["displayName"].ToString() + "\n\r";
                        }
                        if (queryObj["versionNumber"] != null)
                        {
                            myvirus += "版本号:" + queryObj["versionNumber"].ToString() + "\n\r";
                        }
                    }
                    return myvirus;
                }
                catch
                {
                    return "error";
                }
            }
            string getfirewall()
            {            try
                {
                    string myvirus = "";
                    ManagementObjectSearcher searcher =
                        new ManagementObjectSearcher("root\\SecurityCenter",
                        "SELECT * FROM FirewallProduct");                foreach (ManagementObject queryObj in searcher.Get())
                    {
                        MessageBox.Show(queryObj["displayName"].ToString());
                        if (queryObj["displayName"].ToString() != "")
                        {
                            myvirus += "您正在使用" + queryObj["companyName"].ToString() + "的防火墙\n\r";
                        }
                        if (queryObj["displayName"].ToString() != "")
                        {
                            myvirus += queryObj["displayName"].ToString() + "\n\r";
                        }
                        if (queryObj["versionNumber"] != null)
                        {
                            myvirus += "版本号:" + queryObj["versionNumber"].ToString() + "\n\r";
                        }
                    }
                    return myvirus;
                }
                catch
                {
                    return "error";
                }
            }