示例#1
0
        /// <summary>
        /// Gathers the winpc information.
        /// </summary>
        /// <param name="lstIPs">list object containing IP addresses.</param>
        private void GatherWinPCInfo(List <string> lstIPs)
        {
            List <string> lstIPsWithReply = new List <string>();

            foreach (string strIP in lstIPs)
            {
                UpdateStatusLabel(lblStatus, "Pinging " + strIP);
                using (Ping p = new Ping())
                {
                    IPAddress ip        = IPAddress.Parse(strIP);
                    PingReply pingReply = p.Send(ip, 5000);
                    if (pingReply.Status == IPStatus.Success)
                    {
                        lstIPsWithReply.Add(strIP);
                    }
                }
            }

            UpdateStatusLabel(lblStatus, "Done pinging! Now gathering data...");
            if (lstIPsWithReply.Count > 0)
            {
                foreach (string strIP in lstIPsWithReply)
                {
                    try
                    {
                        WinPC winpc = new WinPC();
                        winpc.GetPCSpecs(strIP);

                        if (winpc.PCName != null)
                        {
                            UpdateStatusLabel(lblStatus, "Gathering data for: " + winpc.PCName);
                            AddWinPCToXML(winpc);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogError(ex.Message);
                    }
                }
            }

            if (File.Exists(strWinPCXml))
            {
                DataSet dsWinPC = new DataSet();
                dsWinPC.ReadXml(strWinPCXml);

                UpdateDataGridView(dgvWinPCResults, dsWinPC);
            }

            UpdateStatusLabel(lblStatus, "WinPCFinder Results:");
        }
示例#2
0
        /// <summary>
        /// Adds the winPC object to the XML file.
        /// </summary>
        /// <param name="winPC">a WinPC object.</param>
        private void AddWinPCToXML(WinPC winPC)
        {
            if (File.Exists(strWinPCXml))
            {
                XDocument xDoc   = XDocument.Load(strWinPCXml);
                XElement  xWinPC = xDoc.Element("WinPC_Results");
                xWinPC.Add(
                    new XElement("WinPC",
                                 new XElement("PC_Name", winPC.PCName),
                                 new XElement("PC_IP_Address", winPC.IPAddress),
                                 new XElement("PC_CPU_Name", winPC.CPUName),
                                 new XElement("PC_CPU_Cores", winPC.CPUCores),
                                 new XElement("PC_CPU_Arch", winPC.CPUAddressWidth),
                                 new XElement("PC_OS", winPC.OS),
                                 new XElement("PC_OS_Install_Date", winPC.OSInstallDate),
                                 new XElement("PC_RAM_Installed", winPC.RAMInstalled),
                                 new XElement("PC_Mobo_Mfg", winPC.MoboMfg),
                                 new XElement("PC_Mobo_Product", winPC.MoboProduct)));
                xDoc.Save(strWinPCXml);
            }
            else
            {
                XmlWriterSettings xmlwSettings = new XmlWriterSettings();
                xmlwSettings.Indent = true;

                using (XmlWriter xmlWriter = XmlWriter.Create(strWinPCXml, xmlwSettings))
                {
                    xmlWriter.WriteStartDocument();
                    xmlWriter.WriteStartElement("WinPC_Results");
                    xmlWriter.WriteStartElement("WinPC");
                    xmlWriter.WriteElementString("PC_Name", winPC.PCName);
                    xmlWriter.WriteElementString("PC_IP_Address", winPC.IPAddress);
                    xmlWriter.WriteElementString("PC_CPU_Name", winPC.CPUName);
                    xmlWriter.WriteElementString("PC_CPU_Cores", winPC.CPUCores);
                    xmlWriter.WriteElementString("PC_CPU_Arch", winPC.CPUAddressWidth);
                    xmlWriter.WriteElementString("PC_OS", winPC.OS);
                    xmlWriter.WriteElementString("PC_OS_Install_Date", winPC.OSInstallDate);
                    xmlWriter.WriteElementString("PC_RAM_Installed", winPC.RAMInstalled);
                    xmlWriter.WriteElementString("PC_Mobo_Mfg", winPC.MoboMfg);
                    xmlWriter.WriteElementString("PC_Mobo_Product", winPC.MoboProduct);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndDocument();
                }
            }
        }