如何使用C ++杀死C ++进程,并让它在杀死之前做一些事情

how to kill c++ process using c++ and let it do something before hte kill

本文关键字:进程 杀死 何使用      更新时间:2023-10-16

我正在尝试控制使用 c++ 编写的进程使用 Windows C# 用户界面

首先我运行进程

 private void button1_Click(object sender, EventArgs e)
 {
       Process myProcess = new Process();            
       myProcess.StartInfo.FileName = "filepath.exe";
       myProcess.StartInfo.CreateNoWindow = true;
       myProcess.Start();
}

这将运行该过程

现在在我运行它一段时间后,我想终止它用:

process.Kill();

但是,就像我希望它生成的Ping命令一样一些结果,将它们写入文件然后杀死

那么有没有办法找出另一个进程是否试图杀死这个过程所以我把它引导到写文件函数

每当你杀死一个进程时,你实际上是在向它发送一个信号(SIGKILL 最有可能),所以你需要做的就是为该特定信号分配一个信号处理程序,或者你可以为几个信号分配相同的信号处理程序:

signal(SIGTERM, &terminateSigHandler);
signal(SIGKILL, &terminateSigHandler);
etc..
正如

@Alex Farber在他的评论中提到的,Process.Kill在杀死程序之前没有办法执行任何东西。

在这种情况下,我会亲自编写一个函数来执行任何内容,然后终止进程。

例:

private void killProcess()
{
    [execute code here prior to killing the process] 
    process.Kill();
}