之前看了几篇贴子问如何写监控线程的程序,我也非常想知道,看了下总结了几点,首先如何获取想要的线程的状态,比如已知一个应用程序为A.exe,如何取得它的状态,比如是在正运行还是已经掉了;第二,如何判断是否掉了,比如处理返回值;第三,当A.exe这个程序掉了被监控到了,那怎么样让其自动启动?用 System.Diagnostics.Process.Start(A.exe);么?
希望有明白的大虾帮解决一下,很想知道如何写一个监控程序,同时如果有代码有注释那更好了,麻烦了..

解决方案 »

  1.   

    System.Diagnostics.Process.Start(绝对路径);
    一般一个程序运行了就会在进程信息里面吧,不再的话就关掉咯
      

  2.   

    public static bool IsAppStart(String AppName,String AppPath)
            {            
                    System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName(AppName);
                    foreach (System.Diagnostics.Process myProcess in myProcesses)
                    {                    string ProcessFile = myProcess.Modules[0].FileName;
                        FileInfo Myfile = new FileInfo(ProcessFile);
                        if (Myfile.DirectoryName.ToLower() == AppPath.ToLower())
                        {
                            return true;
                        }
                    }            
                return false;
    }
    谁能帮我把这段代码加上注释么,谢谢了,我还想知道这段代码实现的是什么?
      

  3.   

    1、      System.Threading.Thread th = new System.Threading.Thread(Show);
            th.Start();
            //IsAlive返回一个值表示当前线程状态。
            if (th.IsAlive)
            {
            }
    2、访问该线程如果超时就说明掉了。
    3、System.Diagnostics.Process.Start(绝对路径); 
      

  4.   

    不好意思能说说具体的做法的,我现在想实现的就是做一个程序A,通过这个程序A判断另一个程序B是否在运行,如果在程序B运行则程序A无反应,如果监控到程序B的线程停止,则程序A触发程序B使程序B重新启动,应该怎么样做,能详细说明一下么?
      

  5.   

    我能问一下么,System.Threading.Thread th = new System.Threading.Thread(Show);这句里的(show)的这个体show是什么,是进程的名字么?还有你这句话的意思是什么?