我创建了一个以本地系统用户身份运行的服务。此服务使用本机互操作和 CreateProcessAsUser() 方法启动和监视 Silverlight 浏览器外应用程序(以当前登录用户而不是本地系统的身份运行它)。我能够获取生成的进程的句柄并执行 Kill() 之类的操作,但是,我已经意识到该服务无法获取子应用程序主窗口的句柄,因为子应用程序是作为不同的用户运行。我在 Windows 7 上运行。
我的最终目标是正确响应进程何时停止响应(即 Process.Responding == false),以便我可以终止应用程序并重新启动它。然而,Process.Responding 需要进程主窗口的句柄(确切地说是 Process.MainWindowHandle),然而,在这种情况下,Process.MainWindowHandle 总是返回 0。
我被难住了。有没有办法让一个用户在 Win 7 中获得作为另一个用户运行的进程的窗口句柄?
提前感谢您的任何帮助。