以系统用户身份调用应用程序(Windows)

时间:2013-10-26 13:59:52

标签: c++ c windows winapi

我们有一个在Windows机器上运行的本机GUI应用程序,最近我们发现该应用程序意外终止。几天后我发现这种情况正在发生,因为应用程序是由explorer.exe运行的,并且它会以某种方式随机地被意外杀死,因此它会导致所有子进程终止,包括我们的应用程序。

有没有办法调用/调用我们的应用程序作为系统进程(不是explorer.exe)?

还假设应用程序/用户也具有管理员访问权限。

提前致谢。

2 个答案:

答案 0 :(得分:3)

Killing explorer一般不会杀死其他进程。通过从任务管理器中删除资源管理器,可以很容易地验证自己。请注意,当您杀死资源管理器时,其他进程仍然存在。还有其他事情正在扼杀你的过程。

如果杀死探险家导致你的过程死亡,那么明显的解释是你的过程中的某些东西导致它的死亡。换句话说,问题很可能出现在你的代码中,你需要弄清楚那个问题是什么。

另请注意,资源管理器实际上并不是一个特殊的“系统进程”。这只是一个在登录用户令牌下运行的正常过程。

答案 1 :(得分:1)

您可能需要提供一些OS服务,然后以管理员身份运行该服务(作为系统启动运行),然后从该服务启动该应用程序,这将确保您的应用程序将以管理员身份启动而不需要{ {1}}(作为孩子)