我们有一个在 Windows 机器上运行的原生 GUI 应用程序,最近我们发现应用程序意外终止。几天后,我发现这种情况正在发生,因为应用程序是由运行的explorer.exe
,它意外地被杀死,不知何故随机,所以它导致包括我们的应用程序在内的所有子进程终止。
有没有办法将我们的应用程序作为系统进程调用/调用(而不是使用explorer.exe
)?
还假设应用程序/用户也具有管理员访问权限。
提前致谢。
杀死资源管理器通常不会杀死其他进程。这很容易通过从任务管理器中杀死资源管理器来验证自己。请注意,当您杀死资源管理器时,其他进程仍然存在。其他东西正在扼杀你的进程。
如果杀死 explorer 导致你的进程死亡,那么显而易见的解释是你的进程中的某些东西导致了它的死亡。换句话说,问题最有可能出现在您的代码中,您需要找出问题所在。
另请注意,资源管理器本身并不是一个特殊的“系统进程”。这只是一个在登录用户令牌下运行的正常进程。
您可能需要提供一些操作系统服务,然后以管理员身份运行该服务(作为系统启动运行),然后从该服务启动他的应用程序,这将确保您的应用程序将以管理员身份启动并且没有explorer.exe
(作为孩子)