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

标签 c# c++ process 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..

关于c# - 如何使用 C++ 杀死 C++ 进程并让它在杀死之前做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225980/

相关文章:

c# - 查询 WMI 类 Win32_QuickFixEngineering 返回许多奇怪的时间戳 (C#)

C++缓存文件是什么意思?

c++ - 显示模态对话框时禁用所有顶级窗口(WS_POPUP)

C++性能和运算符示例

c - kill - 它会立即终止进程吗?

java - 使用 Java ProcessBuilder 运行具有多个参数的 Windows .exe 文件不会按预期生成任何输出文件

c# - WriteableBitmap 发生 OutOfMemoryException

c# - 使用带参数的动态 SQL 安全吗?如果不是,它可能会面临哪些安全问题?

c# - 从具有共同值的字典中获取 TKey,其中 TValue 是 List<string>

Swift macOS Process.run() 端口泄漏