示例#1
0
        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();
        }