gpt4 book ai didi

c++ - 正常关闭应用程序 : an Alternative to TerminateProcess

转载 作者:太空宇宙 更新时间:2023-11-04 13:56:18 25 4
gpt4 key购买 nike

我遇到了 TerminateProcess() 函数的问题。该应用程序我目前正在编写一个 JobScheduler 应用程序,它可以在特定时间安排和启 Action 业。为此,我使用 CreateProcess() 来执行我的 JobLauncher。

JobLauncher 进程然后启动一个控制台程序(使用 createprocess ),该程序有效地执行作业可执行文件,等待其终止并监视持续时间、用户和内核时间等。

为了从 JobScheduler 中终止作业,我首先开始使用 TerminateProcess(),但它不允许我正确关闭可执行文件本身。我的意思是我找不到 Hook 任何终止事件的方法。

在我找到比残酷的TerminateProcess() 更好的方法之前,我在调用程序中使用GenerateConsoleCtrlEvent() 编写了一个中间解决方案。

在启动目标作业可执行文件的作业应用程序中,我使用 SetConsoleCtrlHandler() 安装了一个处理程序。在处理程序中,我可以终止作业进程并适本地通知我的第三方。这是我目前找到的更好的解决方案。

Is there a better way to programmaticaly and properly close a process ? Do you this solution is completly absurd ? I'm not a "system-level" specialist developer though...

Z.

最佳答案

这是众所周知的 Windows 控制台问题,您可以找到一些解决方案 here .

我们使用了名为“Kamikaze”的内部控制台实用程序。它按描述工作 here对我而言,这是最佳解决方案,因为在 Windows 版本和 Windows 架构(x86、x64)之间移植没有问题。

关于c++ - 正常关闭应用程序 : an Alternative to TerminateProcess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21336477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com