我的一个程序A有时会异常退出,
打算写一个看守程序B,使B监控A,如果A退出,B就重启A。
但有两个基本条件,一是,用户启动A,A再启动B,
二,当用户关闭A时,A关闭B。
请问各位有什么办法实现,
谢谢!

解决方案 »

  1.   

    EnumProcess检测进程是否存在。
    启动进程B时会有一句柄吧,到时TerminateProcess?
      

  2.   

    在A中加启动和结束进程B的代码,B可以一直等待进程A的句柄,如果A的句柄有信号,就重启A然后退出。应该不难实现。
      

  3.   

    谢谢各位!
    异常相当难查,通常好几天运行才可能出现一次,有时很久也不出现。
    A和B都有可能要关闭对方,所以A和B都需拥有对方的进程句柄,好像比较麻烦,不知怎样传递句柄会更好一些?
      

  4.   

    由于进程是一种资源,而资源的句柄在WIN32中可以作为核心量使用。你可以使用WaitForSingleObject等待核心量状态改变为有信号状态。对进程来讲当进程结束时其状态转变为有信号。
      

  5.   

    首先声明:土方不知道能否治疗大病
    你把VC开在服务器上,用Debug运行你的程序。
    “守株待兔”!!