none
监控进程,出现非法异常! RRS feed

  • 问题

  • 你好!
    我现在正在用控制台程序来定时监控一个exe程序,如果不存在就启动该程序

    程序大致如下:
    Process[] processes = null;
    processes = Process.GetProcessesByName(要执行的程序名称);

    如果没有找到,就去启动该程序:
     Process p = new Process();
     //p.StartInfo.UseShellExecute = false;
     //p.StartInfo.RedirectStandardOutput = true;
     p.StartInfo = new ProcessStartInfo(strRunPro);
     p.Start();
    上述部分代码已经注释掉,尝试那方法不行,
    然后我发现,第一次都能正常启动,但是我在 进行第二次查找的时候,debug这行(processes = Process.GetProcessesByName(要执行的程序名称);)
    发现processes中的提示进程有System.InvalidateOperationException,ExitCode,ExitTime,StandardError,StandardInput,StandardOuput,尝试多种方法么有解决

    请各位给个帮助,谢谢!


    wis_it
    2011年4月22日 1:38

答案

  • 你好,

    我测试了一下代码,但是不会报异常,能贴出你的详细代码吗?

    static void Main(string[] args)
            {

                DetermineProcess();
                Console.ReadKey();
               
                DetermineProcess();
                Console.ReadKey();

                DetermineProcess();
                Console.ReadKey();

            }

            public static void DetermineProcess()
            {
                Process[] processes = null;
                processes = Process.GetProcessesByName("OUTLOOK.EXE");
                if (processes.Length == 0)
                {
                    Process p = new Process();
                    p.StartInfo.FileName = "OUTLOOK.EXE";
                    p.Start();
                    Console.WriteLine("OpenProcess");
                }
            }


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 Paul Zhou 2011年4月29日 5:06
    2011年4月26日 9:15