private static void Main(string[] args) { Console.WriteLine("This is an application monitoring tool. It monitors necessary process and stops it if it is launched " + "more than provided amount of time (in minutes)"); Console.WriteLine("Usage: monitor.exe <processName> <processTimeout> <processCheckInterval>"); Console.WriteLine("Example: monitor.exe notepad 5 1"); if (args.Length < 3) { Console.WriteLine("Incorrect number of parameters!"); Console.WriteLine("Usage: Monitor.exe <processName> <processTimeout> <processCheckInterval>"); return; } if (!int.TryParse(args[1], out var timeout) || timeout <= 0) { Console.WriteLine("Please provide a timeout argument as positive integer"); return; } if (!int.TryParse(args[2], out var checkInterval) || checkInterval <= 0) { Console.WriteLine("Please provide a check interval argument as a positive integer"); return; } var proc = new ProcessMonitor(args[0]); if (proc.IsProcessRunning() != true) { Console.WriteLine($"Process '{proc.Name}' is not running. Exiting..."); return; } proc.Monitor(timeout, checkInterval); ProcessMonitor.FreezeOnScreen(); }