public interface IUFDHelper { IList<string> ufdDriveList { get; set; } ManagementScope scope { get; set; } WqlEventQuery query { get; set; } ManagementEventWatcher watcher { get; set; } ManagementObjectSearcher searcher { get; set; } IList<string> MediaConnectWatcher_EventArrived(object sender, EventArrivedEventArgs e); } </string></string>
public class UFDDetect : IUFDHelper { #region Private Mambers private IList<string> _driveList; private ManagementScope _scope; private WqlEventQuery _query; private ManagementEventWatcher _watch; private ManagementObjectSearcher _searcher; #endregion #region interface mambers public IList<string> ufdDriveList { get { return _driveList; } set { _driveList = value; } } public System.Management.ManagementScope scope { get { return _scope; } set { _scope = value; } } public System.Management.WqlEventQuery query { get { return _query; } set { _query = value; } } public System.Management.ManagementEventWatcher watcher { get { return _watch; } set { _watch = value; } } public System.Management.ManagementObjectSearcher searcher { get { return _searcher; } set { _searcher = value; } } public UFDDetect() { Console.WriteLine("Thread ID is Class :-{0}\n\n", Thread.CurrentThread.ManagedThreadId.ToString()); ufdDriveList = new List<string>(); scope = new ManagementScope("root\\CIMV2"); query = new WqlEventQuery(); query.EventClassName = "__InstanceOperationEvent"; query.WithinInterval = new TimeSpan(0, 0, 1); query.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'"; watcher = new ManagementEventWatcher(scope, query); } public IList<string> MediaConnectWatcher_EventArrived(object sender, System.Management.EventArrivedEventArgs e) { Console.WriteLine("Thread ID is Class :-{0}\n\n", Thread.CurrentThread.ManagedThreadId.ToString()); searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk"); ufdDriveList.Clear(); foreach (ManagementObject s in searcher.Get()) { if (Convert.ToInt16(s["DriveType"]) == 2) { ufdDriveList.Add(s["Name"].ToString()); } } return ufdDriveList; } #endregion } </string></string></string></string>
public partial class frmHome : Form { IUFDHelper ufdhelper; public frmHome() { InitializeComponent(); appPath = Path.GetDirectoryName(Application.ExecutablePath); //_UFD.FoundUsb+=new clsUFDrelatedWork.DeviceFound(_UFD_FoundUsb); //_UFD.StartDetection(); ufdhelper = new UFDDetect(); ufdhelper.watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived); ufdhelper.watcher.Start(); } void watcher_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Thread ID is Main :-{0}\n\n", Thread.CurrentThread.ManagedThreadId.ToString()); IList<string> driveName = ufdhelper.MediaConnectWatcher_EventArrived(sender, e); //this line gives the exception toolSubMn1ConfigUFD.Enabled = toolSubMn2UplaodManageFlahsfiles.Enabled = toolSubMn3ManageDownLoadFiles.Enabled = (driveName.Count > 0 ? true : false); } } </string>
toolSubMn1ConfigUFD.Enabled = toolSubMn2UplaodManageFlahsfiles.Enabled = toolSubMn3ManageDownLoadFiles.Enabled = (driveName.Count > 0 ? true : false);
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)