我现在就是想对一个进程进行实时的监控,判断这个进程是否死了,如果死了就重新启动一下。我只知道这个进程的名称,请教通过什么api函数可以实现这些功能??最好详细些,拜托了!!

解决方案 »

  1.   

    在user32.dll里有个IsHungAppWindow(HWND)函数,可以试一下看
      

  2.   

    向那个进程发一个消息,用SendMessageTimeOut,设置一个超时,如果在这个没有回应,则杀死这个进程,重新启动
      

  3.   

    LPPROCESS_INFORMATION pi;
      HWND hwin;
      CreateProcess(被监控进程,...,pi);
      hwin=findwindow(被监控进程一个窗口名);
      DWORD dexitcode;
      do
      {
        //
        if(Sendmessagetimeout(hwin,WM_GETTEXT,...)==false)
        {
           getlasterror()
           //判断是否有反映
           ...
        }
        GetExitCodeProcess(pi.hprocess,dexitcode);
      }
      While(dexitcode==STILL_ACTIVE)
    }