我目前正在使用 C# 中的 P/Invoke 使用 CreateProcessAsUser,以便从 SYSTEM 帐户中运行的 Windows 服务作为受限用户启动进程。
我的目标是有一个服务来启动一个应用程序,该应用程序需要从我们办公室的用户那里获取信息(进程在前台运行、时间空闲等)。问题是如果这个应用程序以用户的权限运行......好吧,他可以关闭它。如果像其他应用程序的常规进程一样运行,我可以通过以下方式控制此重生:
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = ExePath;
psi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = psi;
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(LaunchAgain);
p.Start();
但是这样,我的问题是,我有两个用户可关闭的应用程序,而不是用户可关闭的应用程序(嗯,但其中一个会重新生成另一个:P)。
您是否知道有某种方法可以知道CreateProcessAsUser创建的进程是否可以被“监视”以在它被杀死或终止时启动某些操作?
PD:当然,不要提出任何改进或不同的方法。