gpt4 book ai didi

C++ 让 Windows 服务启动另一个程序

转载 作者:搜寻专家 更新时间:2023-10-31 01:48:44 25 4
gpt4 key购买 nike

是否可以创建一个windows服务来创建和维护另一个进程?就像我正在编写一个程序,并说一个病毒杀死了这个进程,我可以让我的窗口服务运行并基本上“观察”它吗?我已经拥有常规应用程序的代码,该应用程序保持运行并在当前未运行时执行程序以使其保持运行。

我以前从未写过服务,但是只写这个简单的程序会不会很难,它基本上运行一个检查以查看进程是否正在运行,如果没有,它会执行它并休眠几分钟?

谢谢。

最佳答案

是的,这是可能的。看到第三方应用程序具有看门狗服务以在发生崩溃时保持运行的情况并不少见。服务可以使用 EnumProcesses() 枚举正在运行的进程,如果所需的可执行文件未运行,则使用 CreateProcessAsUser() 启动它的新拷贝。

如果服务是首先启动可执行进程的服务,或者可以在枚举后找到它,一种优化方法是为进程保留一个打开的句柄(由 CreateProcess...() 返回) ,或在枚举返回的进程 ID 上使用 OpenProcess()),然后使用等待函数(如 WaitForSingleObject())来检测进程何时停止运行。这样,您就不必枚举进程来确定预期进程是否仍在运行。

关于C++ 让 Windows 服务启动另一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375100/

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