如何使用C ++杀死C ++进程,并让它在杀死之前做一些事情
how to kill c++ process using c++ and let it do something before hte kill
我正在尝试控制使用 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();
}
相关文章:
- 父进程意外被子 cmd 杀死.exe运行 java jar 的进程 - WINDOWS 7 问题 - C++
- 如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?
- 使用 ctrl + C 在 python 中杀死C++进程
- 当其中一个线程在 C++ 中使用 pthread 被杀死时,我如何保持进程的存活
- 在 c++ 中,如何保证当进程退出或被杀死时执行某些代码?
- 在父母获得杀死信号和退出后,用system()产生的儿童进程继续运行
- sh 杀死非法数:杀死并行进程
- 创建一个进程并杀死它
- 我无法使用终止进程杀死子进程
- 如何在 c++ 中杀死进程,只知道其名称的一部分
- C++ 在进程杀死其父进程后保持进程活动状态
- 如何在Emacs中杀死正在运行的进程
- 在 Linux 中父进程退出之前_保证_子进程被杀死需要什么?
- 通过清理杀死子进程
- 如何使用C ++杀死C ++进程,并让它在杀死之前做一些事情
- C++ 在正在运行的进程中杀死指定的线程
- 如何通过编程方式杀死音频.exe进程
- 用广播系统消息杀死旧进程
- 具有多个客户端的套接字服务器.杀死子进程
- 为另一个进程杀死具有相同GID的进程