ProcessesWatchdog 2.0.0

A C# library to monitor the opening and closing of specific Windows processes

Install-Package ProcessesWatchdog -Version 2.0.0
dotnet add package ProcessesWatchdog --version 2.0.0
paket add ProcessesWatchdog --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

ProcessesWatchdog

A C# library to monitor the opening and closing of specific Windows processes.

Get it on NuGET: https://www.nuget.org/packages/ProcessesWatchdog

Example (available under ProcessesWatchdogSample):

using System;
using System.Linq;
using ProcessesWatchdog;

namespace ProcessesWatchdogSample
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Create multiple watch dogs for various processes
            var watchedProcessNames = new[] {"Calculator", "mspaint", "Steam", "Spotify"};
            var watchdogs = watchedProcessNames.Select(CreateLoggingWatchDog).ToArray();
            
            foreach (var watchdog in watchdogs)
            {
                watchdog.Start();
            }

            Console.WriteLine("Press any key to stop the watch dogs");
            Console.ReadKey();

            Console.WriteLine("Stopping the watchdogs...");

            foreach (var watchdog in watchdogs)
            {
                watchdog.Stop();
            }

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
            
        }

        /// <summary>
        /// Creates a watch dog that writes to console when the process is started or terminated
        /// </summary>
        private static ProcessWatchdog CreateLoggingWatchDog(string processName)
        {
            var watchdog = new ProcessWatchdog(processName);
            watchdog.OnProcessOpened += (pid) => { Console.WriteLine($"{processName} is running with PID {pid}"); };
            watchdog.OnProcessClosed += () => { Console.WriteLine($"{processName} is terminated"); };

            return watchdog;
        }
    }
}

ProcessesWatchdog

A C# library to monitor the opening and closing of specific Windows processes.

Get it on NuGET: https://www.nuget.org/packages/ProcessesWatchdog

Example (available under ProcessesWatchdogSample):

using System;
using System.Linq;
using ProcessesWatchdog;

namespace ProcessesWatchdogSample
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Create multiple watch dogs for various processes
            var watchedProcessNames = new[] {"Calculator", "mspaint", "Steam", "Spotify"};
            var watchdogs = watchedProcessNames.Select(CreateLoggingWatchDog).ToArray();
            
            foreach (var watchdog in watchdogs)
            {
                watchdog.Start();
            }

            Console.WriteLine("Press any key to stop the watch dogs");
            Console.ReadKey();

            Console.WriteLine("Stopping the watchdogs...");

            foreach (var watchdog in watchdogs)
            {
                watchdog.Stop();
            }

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
            
        }

        /// <summary>
        /// Creates a watch dog that writes to console when the process is started or terminated
        /// </summary>
        private static ProcessWatchdog CreateLoggingWatchDog(string processName)
        {
            var watchdog = new ProcessWatchdog(processName);
            watchdog.OnProcessOpened += (pid) => { Console.WriteLine($"{processName} is running with PID {pid}"); };
            watchdog.OnProcessClosed += () => { Console.WriteLine($"{processName} is terminated"); };

            return watchdog;
        }
    }
}

Release Notes

OnProcessOpened now requires the callback to accept the PID (this breaks compatibility, hence the change in major version)

Version History

Version Downloads Last updated
2.0.0 61 2/20/2019
1.1.0 54 2/18/2019
1.0.0 48 2/15/2019