我在C#中开发了一个应用程序。有没有什么办法,如果用户杀死了我的应用程序的任务管理器中的进程,那么应用程序将自动重新启动 我搜索了很多这种类型的事件,当进程从任务管理器手动终止时应该被触发 感谢如何启动我的C#应用程序再次如果用户终止任务管理器的进程
回答
如果用户杀死你的进程 - 这是相当多了。你不会得到任何事件,什么都没有。
你需要做的是有一个第二个进程运行在监视第一,偶尔轮询正在运行的进程,并重新开始在它停止该事件的第一个列表。或者,您可以让他们使用IPC来偶尔做心跳检查,以避免查看整个进程列表。
当然,如果用户首先杀死监视器进程,那么除非两个进程都监视对方并启动无论哪个丢失,否则你不会真正得到任何地方,但现在你只是绕着圈子走。
虽然一般来说,这是一个坏主意。如果用户想要停止你的过程,你应该让他们。你为什么要阻止他们?
但是,如果我将开始另一个进程监视第一个,然后功能将被复制 – 2013-04-30 10:17:31
有什么方法来启动同一个应用程序的两个过程,但使用不同的名字,这样我可以处理好这个问题 – 2013-04-30 10:19:33
没有必要启动完全相同的流程两次,只需编写第二个小应用程序,其唯一目的是进行监控。 – PhonicUK 2013-04-30 10:24:08
唯一的解决办法我看到的是另一种过程,手表的主要过程和重新启动它。我会在主进程中使用Mutex,并在监视进程中观察该Mutex。释放互斥意味着主进程被阻止。
/// <summary>
/// Main Program.
/// </summary>
class Program
{
static void Main(string[] args)
{
// Create a Mutex which so the watcher Process
using (var StartStopHandle = new Mutex(true, "MyApplication.exe"))
{
// Start the Watch process here.
Process.Start("MyWatchApplication.exe");
// Your Program Code...
}
}
}
在钟表工艺:
/// <summary>
/// Watching Process to restart the application.
/// </summary>
class Programm
{
static void Main(string[] args)
{
// Create a Mutex which so the watcher Process
using (var StartStopHandle = new Mutex(true, "MyApplication.exe"))
{
// Try to get Mutex ownership.
if (StartStopHandle.WaitOne())
{
// Start the Watch process here
Process.Start("MyApplication.exe");
// Quit after starting the Application.
}
}
}
}
亲爱的你请详细说明这段代码 – 2013-04-30 10:27:59
为了清晰起见,我添加了更多的代码。作为一个侧面说明,这只是一个例子,并不是一个非常稳固的解决方案。 – Mecaveli 2013-04-30 12:06:21
- 1. 如果应用程序管理器中的用户停止应用程序,则希望重新启动服务。
- 2. 如何防止从任务管理器关闭应用程序?
- 3. 如果脚本被取消,如何终止从Ant任务启动的进程?
- 4. 如何停止资源管理器启动我的应用程序最大化?
- 5. 如何识别哪个应用程序用于在任务管理器中启动excel进程
- 6. 应用程序再次启动
- 7. 避免再次启动应用程序
- 8. 当我关闭应用程序时服务再次启动
- 9. 如何在应用程序启动时停止后台任务?
- 10. 重新启动通过任务管理器终止的Chrome应用/扩展程序
- 11. 用C程序启动和终止cu
- 12. 如何在C#中的任务管理器中隐藏进程?
- 13. 任务管理器如何杀死应用程序?
- 14. 程序终止,如果我使用scanf
- 15. 如何保持我的程序输出终止并再次启动程序而不丢失数据?
- 16. android如何杀死一个进程或应用程序并检测一些应用程序再次启动
- 17. 当应用程序启动时,声音应该再次启动
- 18. 如何停止从C#.Net应用程序启动的Excel进程?
- 19. 如何防止我的应用程序一次又一次启动
- 20. Chrome应用程序window.onClosed当从任务管理器终止进程时被触发 - Google Chrome
- 21. 如何防止从我的应用程序启动其他应用程序
- 22. 任务管理器如何杀死我的程序?
- 23. 如何从IRQ处理程序中终止用户应用程序?
- 24. Android应用程序错误:应用程序已停止unexpectely,再试一次甚至不启动应用程序
- 25. 如何启动具有管理权限的应用程序?
- 26. 如何终止我的应用程序或在xcode中重新启动它?
- 27. 如何防止我的Android应用程序/服务被任务管理器“杀死”?
- 28. 如何在rails应用程序启动时启动线程并在终止时终止它
- 29. 任务管理器像使用Java Swing的应用程序
- 30. 如何在c#控制台应用程序中止时终止子进程?
最后,如果用户试图努力不够,他们将能够杀死你的应用程序。你想达到什么目的? Windows服务可能是一条需要考虑的路线。 – KingCronus 2013-04-30 10:09:25
你确定这是明智的吗?如果我正在运行一个应用程序,每次我杀死它时都会重新启动,我会感到非常愤怒。 – 2013-04-30 10:09:42
@PaulieWaulie Chrome通过大量的进程来实现这种窍门,如果任何一个失败,似乎都会重启对方...是的,这让我很生气。 – Oliver 2013-04-30 10:10:40