/// <summary> /// Display message about the device removed. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeviceRemovedEvent(object sender, EventArrivedEventArgs e) { ManagementBaseObject instance = (ManagementBaseObject)e.NewEvent["TargetInstance"]; string name = instance.Properties["Name"].Value.ToString(); string output = name + " is Removed."; App.Current.Dispatcher.Invoke((Action) delegate // Trigger action in the UI thread { if (VCPs.Contains(name)) { VCPs.Remove(name); } else if (USBs.Contains(name)) { USBs.Remove(name); } Statuses.Add(output); }); }
/// <summary> /// Detect the COM ports. /// </summary> private void DetectVCPMethod(object sender) { VCPs.Clear(); try { // Find in Win32_PnPEntity id that contains VCP ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE PnPClass='Ports'"); foreach (ManagementObject queryObj in searcher.Get()) { if (!VCPs.Contains(queryObj["Name"].ToString())) { VCPs.Add(queryObj["Name"].ToString()); } } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } }