簡體   English   中英

如何使用c ++殺死c ++進程並讓其在hte殺死之前執行某些操作

[英]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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM