Application.Restart()在C#中使用该方法应该重新启动当前的应用程序:但似乎这并不总是有效.
这个问题是否有原因,有人可以告诉我,为什么它不能一直工作?
我需要一些方法来监视桌面应用程序并在它死亡时重新启动它.
最初我假设最好的方法是从Windows服务监视/重启进程,直到我发现Vista Windows服务不应该与桌面交互
我已经看到了几个处理这个问题的问题,但是我看到的每一个答案都涉及到某种被微软劝阻的黑客攻击,可能会在未来的操作系统更新中停止工作.
因此,Windows服务可能不再是一个选项.我可能只是创建一个不同的桌面/控制台应用程序来做到这一点,但这种方式失败了.
在您看来,哪种方式最优雅?
编辑:这既不是恶意软件也不是病毒.需要监控的应用程序是一个可以在嵌入式系统上运行的媒体播放器,即使我试图涵盖所有可能的崩溃情况,我也不会冒着因意外错误而崩溃的风险(不会发生) .这个看门狗只是一个安全措施,万一其他一切都出错了.此外,由于播放器将显示第三方Flash内容,因此增加的优势将是监视资源使用情况,并重新启动播放器,如果说,一些蹩脚的Flash电影开始泄漏内存.
编辑2:我忘了提到,我想要监视/重启的应用程序完全不需要在LocalSystem帐户上运行,也不需要任何管理权限.实际上,我更喜欢它使用当前记录的用户凭据运行.