我在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. 如何防止从任务管理器关闭应用程序?
- 4. 限制非管理员用户停止任务管理器中的进程C++
- 5. 如果客户端进程在事务启动后被终止
- 6. 代表您应用程序进程的任务管理器
- 7. 如果脚本被取消,如何终止从Ant任务启动的进程?
- 8. 如何停止资源管理器启动我的应用程序最大化?
- 9. 如何识别哪个应用程序用于在任务管理器中启动excel进程
- 10. 应用程序通知在任务管理器终止应用程序后停止
- 11. 应用程序再次启动
- 12. 避免再次启动应用程序
- 13. 当我关闭应用程序时服务再次启动
- 14. 如果服务未启用,防止应用程序进展
- 15. 如何在应用程序启动时停止后台任务?
- 16. 如果设备启动,我的应用后台进程停止
- 17. 重新启动通过任务管理器终止的Chrome应用/扩展程序
- 18. 用C程序启动和终止cu
- 19. 如何在C#中的任务管理器中隐藏进程?
- 20. 任务管理器如何杀死应用程序?
- 21. 注销Swing应用程序后,javaw.exe不会从任务管理器终止
- 22. 如何通过任务管理器清除我的应用程序中的SharedPreferences?
- 23. 防止从任务管理器(WPF应用程序)最大化
- 24. 如何在ruby中控制器(启动/终止)后台进程(服务器应用程序)
- 25. 如何在Windows 8中启动任何应用程序时启动我的C#应用程序?
- 26. 如何启动android应用程序管理器
- 27. 程序终止,如果我使用scanf
- 28. 将应用程序从应用程序移动到任务管理器中的后台进程
- 29. ios从我的应用程序启动应用程序导致我的应用程序终止
- 30. android如何杀死一个进程或应用程序并检测一些应用程序再次启动
最后,如果用户试图努力不够,他们将能够杀死你的应用程序。你想达到什么目的? Windows服务可能是一条需要考虑的路线。 – KingCronus 2013-04-30 10:09:25
你确定这是明智的吗?如果我正在运行一个应用程序,每次我杀死它时都会重新启动,我会感到非常愤怒。 – 2013-04-30 10:09:42
@PaulieWaulie Chrome通过大量的进程来实现这种窍门,如果任何一个失败,似乎都会重启对方...是的,这让我很生气。 – Oliver 2013-04-30 10:10:40