protected List <SoftwareDTOResponse> GetItemsFromRegistry(RegistryKey key, string path) { List <SoftwareDTOResponse> software = new List <SoftwareDTOResponse>(); using (RegistryKey rk = key.OpenSubKey(path)) { foreach (string skName in rk.GetSubKeyNames()) { using (RegistryKey sk = rk.OpenSubKey(skName)) { try { SoftwareDTOResponse application = new SoftwareDTOResponse(); application.Label = sk.GetValue("DisplayName").ToString(); application.Vendor = sk.GetValue("Publisher").ToString(); application.Version = sk.GetValue("DisplayVersion").ToString(); software.Add(application); } catch (Exception) { } } } } return(software); }
public List <SoftwareDTOResponse> GetSoftwareInfo() { List <SoftwareDTOResponse> software = new List <SoftwareDTOResponse>(); try { SelectQuery query = new SelectQuery( @"select Name, Vendor, Version from Win32_Product" ); ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); foreach (ManagementObject obj in searcher.Get()) { SoftwareDTOResponse soft = new SoftwareDTOResponse(); soft.Label = GetValueAsString(obj, "Name"); soft.Vendor = GetValueAsString(obj, "Vendor"); soft.Version = GetValueAsString(obj, "Version"); software.Add(soft); } } catch (ManagementException e) { Logger.Instance.LogError(e.ToString()); } return(software); }
protected List <SoftwareDTOResponse> MergeSoftwareLists(List <SoftwareDTOResponse> baseList, List <SoftwareDTOResponse> newList) { List <SoftwareDTOResponse> software = new List <SoftwareDTOResponse>(); software.AddRange(baseList); foreach (SoftwareDTOResponse application in newList) { SoftwareDTOResponse result = software.Find( delegate(SoftwareDTOResponse item) { return(item.Label == application.Label && item.Version == application.Version); } ); if (result != null) { continue; } software.Add(application); } return(software); }