WMI events may alert you to a new process. Depending on the event you may have to poll. Using the Win32_ProcessStartTrace class, you do not need to poll. New events occur as events in your code. The following is an example (add System.Management as a link to your project)
public System.Management.ManagementEventWatcher mgmtWtch; private delegate void ListBoxItemAdd(string Item); public Form1() { InitializeComponent(); mgmtWtch = new System.Management.ManagementEventWatcher("Select * From Win32_ProcessStartTrace"); mgmtWtch.EventArrived += new System.Management.EventArrivedEventHandler(mgmtWtch_EventArrived); mgmtWtch.Start(); } void AddItem(string Item) { if (lwProcesses.InvokeRequired) lwProcesses.Invoke(new ListBoxItemAdd(AddItem), Item); else lwProcesses.Items.Add(Item); } void mgmtWtch_EventArrived(object sender, System.Management.EventArrivedEventArgs e) {
source share