[英]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.