各位大大:
原来有一个CLI的程序,写有对SIGTERM和SIGINT的处理函数,通过Ctrl+C结束改程序时,会触发一些结束前的处理工作,然后在终止进程。
现在需要用C#做一个B/S的GUI,启动该程序进程没问题,但终止该程序进程的时候,调用Process里的Kill(),或者用TerminateProcess(hProcess, 2)/TerminateProcess(hProcess, 15)都没有效果,ms都时直接关掉了,请问怎么才能实现类似于按了Ctrl+C的效果?谢谢

解决方案 »

  1.   

    参见<<windows核心编程>>TerminateProcess 这个函数调用时,被终止进程不会得到任何信息.
    所以它无法进行清理工作.你可以考虑采用SendMessage,将Ctrl+C按键消息发给这个进程.
      

  2.   

    嘿,这几天我正在复习<WINDOWS核心编程>没事做的时候翻翻,偶尔会发现一些原来看的时候漏掉的地方LS的LS不会也这么巧吧?
      

  3.   

    呵呵...这些底层书籍...像".Net框架设计"之类,我都当作参考书.第一次先看一遍,大体知道讲了什么东西.遇到问题了,随时拿出来看...