2012-02-03 207 views
3

我正在写(win7)自助服务终端软件,并且我希望安排“关机”蝙蝠在我的应用程序在特定用户帐户下退出(崩溃,“破解”或正常退出)任务调度程序。任务计划程序应用程序退出触发器

如何创建应用程序关闭触发器?

如果这是不可能的,我的回退计划是在应用程序启动事件中开始某种监视器,但是我想如果我的假想黑客可以关闭主应用程序什么来阻止他们关闭监视器进程?

编辑:目前该应用程序是下过度有限公司简介装入“运行方式”指令冒充管理员用户。如果任务调度可能被触发,我也可以在应用程序关闭时从管理帐户运行此批处理文件。

回答

1

也许你可以让你的自助服务终端应用程序创建并拥有一个全局互斥锁,并让监视器应用程序等待互斥锁。监视器应用程序可以是一项服务,因此您不必担心从您的过程中启动监视器应用程序。当应用程序终止时,监视器将获得互斥量的所有权,并且作为奖励,如果您的进程意外终止(即永远不会正确释放互斥量),则监视器应用程序将向其投掷AbandonedMutexException。所以你会知道这是一个正常的关机,还是碰撞/杀死。您可以在具有必要权限的帐户下运行监控应用程序,以执行任何需要关机工作。

0

长短不一,这是你不能,一旦应用程序进程终止,你不能继续在同一个进程中执行代码。您的应用程序监控应用程序是一种方式。如果出现问题,我会以某种方式提醒您。如果将轮询时间间隔设置得足够短,在发送某种警报之前结束这两个应用似乎并不实际(尽管可能)。

1

我有个主意。

当您的应用程序启动时,您会在1分钟后创建关机时间表。并且在你的应用程序中,你可以设置一个定时延迟计划。一旦你的应用程序关闭,没有人推迟计划,以便机器关闭。你也应该删除正常的退出

+0

好建议的时间表,但除非在那里有一个的PInvoke“延迟”的关机方法(或我错过了什么)shutdown命令将不得不被取消并重新启动。主应用程序可以完全负责自身,这使得实现变得简单。 虽然我不知道有关命令的重新启动, – 2012-02-15 12:59:32

+0

[编辑超时] - 把一个单一的(暴露)过程中的功能确实,虽然我担心。还缺少从C#中的电流关断opperation的知名度可能导致应用程序意外关闭。 – 2012-02-15 13:06:02

相关问题