using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Management; using System.ComponentModel; using System.Runtime.InteropServices; namespace SetValueOfWMI { class Program { static void Main(string[] args) { ManagementEventWatcher watcher = WatchForProcessStart(); while(true) watcher.WaitForNextEvent(); } private static ManagementEventWatcher WatchForProcessStart() { string scope = @"\\.\root\CIMV2"; string queryString = "SELECT TargetInstance FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'Win32_PrintJob'"; ManagementEventWatcher watcher = new ManagementEventWatcher(scope, queryString); watcher.EventArrived += ProcessStarted; watcher.Start(); return watcher; } private static void ProcessStarted(object sender, EventArrivedEventArgs e) { ManagementBaseObject targetInstance = (ManagementBaseObject)e.NewEvent.Properties["TargetInstance"].Value; targetInstance.Properties.Cast<propertydata>().ToList().ForEach(p => Console.WriteLine("{0}={1}", p.Name, p.Value)); } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)